精通学习C语言——操作符(1)

算术操作符

  +  -  *  /  %
  1. 除了*%*操作符之外,其他的几个操作符可以作用于整数和浮点数。
  2. 对于*/*操作符如果两个操作数都为整数,执行整数除法,而只要有浮点数执行的就是浮点数除法。
  3. *%*操作符的两个操作数必须为整数,返回的是整除之后的余数。

移位操作符

   <<  左移操作符
   >>  右移操作符
*左移操作符*移位规则
左边抛弃、右边补0
如:int num = 10;
 00000000000000000000000000001010 
 //num在内存中的二进制
 num << 1;
*0*0000000000000000000000000001010*0*
//num左移一位产生的结果

*右移位操作符*移位规则
右移运算分两种:
逻辑移位  左边用0填充,右边丢弃
算术移位  左边用原该值的符号位填充,右边丢弃
int num = -1;
补码: 11111111111111111111111111111111
算术右移:左边用原该值的符号位填充
*1*1111111111111111111111111111111*1*
逻辑右移:左边补0
*0*1111111111111111111111111111111*1*
//对于移位运算符,不要移动负数位,这个是标准未定义的

位操作符

   &  按位与
   |  按位或
   ^  按位异或
 //操作数必须为整数
 int main()
 {
     int a = 1;
     int b = 2;
     a & b;  //结果为0
     a | b;  //结果为3
     a ^ b;  //结果为3
     return 0;
 }

赋值操作符

int weight = 120;
weight = 70;
double salary = 10000.0;
salary = 20000.0;
//可以随意给变量赋值
//复合赋值符
 += -= *= /= %= <<= >>= &= |= ^=
 int x = 10;
 x = x + 10;
 x += 10;//复合赋值

单目操作符

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

关系操作符

  >  >=  <  <=  !=  ==
//需要注意的是不要写错*==*和*=*,导致程序错误

逻辑操作符

   &&  逻辑与        ||  逻辑或
//区分逻辑与和按位与,逻辑或和按位或
    1&2     0       1|2      3
    1&&2    1       1||2     1

条件操作符

  exp1 ? exp2 : exp3
if(a > 5)
    b = 3:
else
    b = -3;
//改写成条件操作符
b = (a > 5) ? 3 : -3;

逗号表达式

 exp1, exp2, exp3,...expN
//逗号表达式,就是用逗号隔开的多个表达式,从左向右依次执行,整个表达式的结果是最后一个表达式的结果

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

[] 下标引用操作符
操作数:一个数组名+一个索引值
int arr[10];
arr[9] = 10;
//[]的两个操作数是arr和9
()函数调用操作符
接受一个或多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数
test(arr,x,y);
void test(int arr,int x,int y){}
访问一个结构成员
.  结构体.成员名
-> 结构体指针->成员名
struct Stu
{
    char name[10];
    int age;
    char sex[5];
    double score;
}
int main()
{
    struct Stu stu;
    struct Stu*pStu = &stu;

    stu.age = 20;
    pStu->age = 20;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值