C语言操作符

一、算数操作符

        +  -  *  /  %

        1、除了%操作符之外,其他的几个操作符可以用于整数和浮点数。

        2、对于/操作符如果两个操作数都为整数,执⾏行行整数除法。⽽而只要有浮点数执⾏行行的就是浮点数除法。

        3、%是求模运算符,两个操作数都必须为整数。返回整出后的余数。

二、移位操作符

        << 左移操作符。移位规则:左边丢弃,右边补0。

        >> 右移操作符。移位规则:1、逻辑移位:右边丢弃,左边补0。

                                                    2、算术移位:右边丢弃,左边用原符号位填充。

        注意:不能移动负数位,这个是未定义的。                                              

三、位操作符

        &    按位与 

        |      按位或

        ^    按位异或

        注意:操作数必须是整数。

不创建临时变量,实现两个数的交换。

#include <stdio.h>
int main()
{
int a = 10;
int b = 20;
a = a^b;
b = a^b;
a = a^b;
printf("a = %d b = %d\n", a, b);
return 0;
}

 

 

四、赋值操作符

 

        赋值操作符,用一个 = 表示。它可以让你得到一个之前不满意的值。即可以给变量重新赋一个新值。

        复合赋值符。

五、单⽬目操作符

       !            逻辑反操作

       -              负值

       +             正值

       &             取地址

       sizeof       操作数的类型长度(单位是字节)

        ~             对一个数的二进制按位取反

        --            前置、后置--

        ++          前置、后置++

         *             间接访问操作符(解引用操作符)

      (类型)    强制类型转化

六、关系操作符

        >

        <

        <=

        >=

        !=

        ==

七、逻辑操作符

        &&    逻辑与

        | |       逻辑或

1&2----->0
1&&2---->1
1|2----->3
1||2---->1

 

八、条件操作符

 

        exp1 ? exp2 : exp3        先判断exp1是否成立,若成立则执行exp2,否则执行exp3。

九、逗号表达式

        就是用逗号隔开的多个表达式。从左至右依次执行。整个表达式的结果是最后一个表达式的结果。

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

        1、[ ]

        操作数:一个数组名 + 一个索引值

int arr[10];// 创建数组
arr[9] = 10;// 实⽤用下标引⽤用操作符。
[ ]的两个操作数是arr和9。

 

        2、( )

 

        函数调用操作数

#include <stdio.h>
void test1()
{
printf("hehe\n");
}
void test2(const char *str)
{
printf("%s\n", str);
}
int main()
{
test1(); // 实⽤用()作为函数调⽤用操作符。
test2("hello bit.");// 实⽤用()作为函数调⽤用操作符。
return 0;
}

        3、访问一个结构体的成员

        .       结构体 . 成员名

#include <stdio.h>
struct Stu
{
char name[10];
int age;
char sex[5];
double score;
};
void set_age1(struct Stu stu)
{
stu.age = 18;
}
void set_age2(struct Stu* pStu)
{
pStu->age = 18;// 结构成员访问
}
int main()
{
struct Stu stu;
struct Stu* pStu = &stu;// 结构成员访问
stu.age = 20;// 结构成员访问
set_age1(stu);
pStu->age = 20;// 结构成员访问
set_age2(pStu);
return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值