C语言 *** 作符

C语言 *** 作符,第1张

C语言 *** 作

*** 作符分类:

        算术 *** 作符

        移位 *** 作符

        位 *** 作符

        赋值 *** 作符

        单目 *** 作符

        关系 *** 作符

        逻辑 *** 作符

        条件 *** 作符

        逗号 *** 作符

        下标引用、函数调用和结构成员

算数 *** 作符

+    -     *       /     %

 1.对于除法如果是小数,会自动省略掉小数后面的位

2.对于%两边必须是整数

<<             >>

 

 <<  左移操作符:

                左边丢弃,右边补0

&   //按位与

|    //按位或

^   //按位异货

注:他们的 *** 作符必须是整数

&对应的二进制位只要有0,该位就是0

|对应的二进制位只要有1,该位就是1

^对应的二进制位只要不同就为1,相同为0

#define _CRT_SECURE_NO_WARNINGS 1
#include

int main() {
	int x;
	int y;

	printf("请输入两个数字:");
	scanf("%d %d", &x, &y);
	//先使得第一个x作为密码
	x = x ^ y;
	//通过y与密码异或解出x
	y = x ^ y;
	//再通过密码与解出来的x进行异或解出y
	x = x ^ y;

	printf("交换后为x = %d,y = %d", x, y);

	return 0;
}

赋值 *** 作符

可以对变量进行重新赋值

可以进行连续赋值

变量1=变量2=……=变量n=值;

关于运算符都能与赋值符号组合成为复合赋值符

+=    -=      *=       /=       %=       >>=        <<=     &=      |=       ^=

单目 *** 作符

 

 单目 *** 作符是只有一个 *** 作数

当++或--在变量后边的时候,先赋值再++或者--

int * pa = &a   //pa是用来存放地址的

*pa = 20;    //解引用 *** 作符  - 间接访问 *** 作符

强制类型转换

(类型1)类型2

三目 *** 作符

 变量 =(判断语句 ? 语句1 :语句2);

如果判断语句为真执行语句1,为假执行语句2

逗号表达式 要从左向右依次计算,但是整个表达式的结果是最后一个表达式的结果

struct定义一个结构体类型

struct 变量名1{

        语句块;

}

调用:

struct 变量名1 变量名2 =  {值}

结构体变量名.成员名

 

算术转换

如果某个 *** 作符的各个 *** 作数属于不同的类型,那么除非其中一个 *** 作数的转换为另一个 *** 作数的类型,否则 *** 作就无法进行。下面的层次体系称为寻常算术转换

long double

double

float

unsigned long int

long int

unsigned int

int

如果某个 *** 作数的类型在上面这个列表中排名较低,那么首先要转换为另外一个 *** 作数的类型后执行运算 

两个相邻的 *** 作符先执行哪个?取决于他们的优先级。如果两者的优先级相同,取决于他们的结合性。 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5634762.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存