文章标题

c语言操作符分为算数操作符,移位操作符,位操作符,赋值操作符,单目操作符,关系操作符,逻辑操作符,条件操作符,逗号表达式,下标引用、函数调用和结构成员

1、算数操作符
+ - * / %
注:(1)除了%操作符之外,其他的操作符可以用作于整数和浮点数
(2)%操作符的两个操作数必须为整数

2、移位操作符
包括:<< 左移操作符 , >>右移操作符
前提:整数在内存中存储的为二进制的补码
(1)<<左移操作符
移位规则为:左边抛弃,右边补0
(2)>>右移操作符
1)逻辑移位:左边用0填空,右边丢弃(应用较少,存在缺陷,会将正数变为负数)
2)算数移位:左边用原该值的符号位填充,右边丢弃(符号位填充的原则为 正数补0,负数补1)
注:1)移位操作符不能对浮点型移位,不能移负数,只能移负数
2)a移位,a本身不会改变,表达式的结果是移位后的结果

3、位操作符 (补码运算)
& 按位与
| 按位或
^ 按位异或
规则:
1)&按位与:补码中有1个0则为0
2)|按位或:有1个1则为1
3)^按位异或:相同为0,相异为1
注:它们的操作数必须是整数

4、赋值操作符
对不满意的操作符可以重新赋值
包括复合赋值符:+=,-=,*=,/=,%=,>>= , <<=, &= , |= ,^=

5、单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度
~ 对一个数的二进制按位取反
– 前置、后置–
++ 前置、后置++
* 间接访问操作符
(类型) 强制类型转换

(1)&取地址
例:
int main()
{
int arr[10] = {0};
printf ( “%p\n”,&arr ); //数组的地址
printf ( “%p\n”,&arr+1 ); //跳过整个数组
printf ( “%p\n, arr ); //数组首元素的地址
printf ( “%p\n, arr+1 ); //跳到第二个元素
return 0;
}

(2)sizeof 操作数的类型长度 (不是函数,是操作符)
int main()
{
int a = 10;
printf ( “%d\n”,sizeof(a) ); //4
printf ( “%d\n”,sizeof(int) ); //4
return 0;
}

注:
1)//sizeof(数组名)-数组名表示整个数组-计算的是整个数组的大小,单位是字节
2)//&数组名-数组名表示整个数组-这里取出的是整个数组的地址
除此以外,所有数组名都是首元素的地址
3)size of 内部放置的表达式不计算

(3)前置++、后置++
规则:
++a:先++,再使用
a++ :先使用,再++ //(int tmp=a, a=a+1, tmp )

6、逻辑操作符
&&逻辑与
|| 逻辑或
规则:a&&b 两个为真则是1,有一假则为0
a||b 有1真则为1

7、关系操作符

 >=    <   <=    !=   ==

注:判断的==容易弄成赋值的=

8、下标引用、函数调用和结构成员
(1)[]
操作数:一个数组名+一个索引值
(2)()
函数调用操作符
接受一个或多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数
(3)访问一个结构的成员
. 结构体.成员名
->结构体指针->成员名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值