周末总结

本文详细介绍了C语言中的基本运算符使用方法,包括自增自减运算符的前缀与后缀区别、复合赋值运算符的简写形式及其嵌套规则,并探讨了如何查看变量的内存地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在周五学习了数据运算符以及查看内存地址

查看内存的方式:
1.打断点
2,开始调试
3,调试>>窗口>>内存
4,输入打印的数据地址
5,按f10是逐条运行




"&" 叫取地址符;
打印地址的方式printf("%p",&变量名),例如:
int a = 0;
printf("%p",&a);   //07fc67b4(物理地址)


再次强调:计算机存储的数据的补码;



++自增运算符   等同于 + 1;
--自减运算符   等同于 - 1;
都是配合变量来使用,
可以作为前缀,如:int a = 10;++a;
也可以作为后缀,如:int b = 20;b++;
自增(或自减)做前缀(后缀)区别
做前缀时,是先自增(或自减)再参与运算;
做后缀时,是先参与运算后自增(或自减);


int a = 3,b=4;
b = a+++b;  //-a++; 
计算机会讲上述表达式解读为 b = (a++) + b;最终结果a = 3,b = 7;


"贪心法",当我们计算机在遇到符号时,在合法的情况下总是尽可能多的读取;




赋值运算符:  =  等号左边叫左值,右边叫右值.左值是可以修改的值,即程序中的变量.
int a = 3;
a = 4;   //合法
//a = 4;   //合法
//a++ = 4; // 不合法  
//-a = -4;  //不合法 
//a + 4 = 7;  //不合法  
//(a++)++;   //不合法   
//-(a--) = -3;  //不合法


搞清楚表达式跟变量的区别,表达式是一个值,可以有变量参与在其中.




复合赋值运算符: +=,-=,*=,/=,%= 说白了就是简写.
如:
int a = 3;
a += 1;  >>  a = a + 1;  >> ++a ;
a %= 7;  >> a = a%7  a = 3;
printf("%d",a);


a += 2;  //3
a -= 7;  //-4
a *= 2;  //6
a /=2;   //1
a %= 2;  //1


复合赋值运算的嵌套: 自右向左结合;
如:
int a = 3;
a += a -= a *= a /= a %= a*a;


//展开后:
a = a %(a * a);  //a = 3;
a = a / a;   //a = 1;
a = a * a;   //a = 1
a = a - a;   //a = 0
a = a + a;   //a =0


printf("a = %d", a);  //a = 0




逗号运算符,与逗号表达式:
逗号表达式的值,等于最后一个逗号后面的表达式的值.
如:
a=3,a+=2,a*=3;    // a = 15 整个表达式的值 = 15




如:
int a = 0,b = 0;
b = (a = 3, a += 2, a *= 3,a %= 2);
展开:
a = 3;
a = a + 2;
a = a * 3;
a = a % 2;
b = a;
printf("a = %d,b = %d", a, b);   //a = 1 整个表达式的值 = 1




关系运算符:  
大于>,
小于<,
大于等于>=,
小于等于<=,
不等于!=,
等于==
说白了就是比较和判断


注意,注意,注意,千万不要把"=="写成"=";


在C语言中.一般情况下,逻辑上的"真"-true,在数值上等于1,"假"-false,等于0;


int a = 2, b = 3,c = 0;
c = (a < b);     //此时等号右边的关系运算表达式的结果为真,所以值为1;
printf("c = %d", c);    //c = 1;

有趣小例子:
int a = 2, b = 3,c = 4,d = 0;
d = (a < c < b);  
printf("d = %d", d);   
d= 1;

因为数据运算的规则是按照从左向右的方式运算的;

先计算a<c,得到结果1,在计算1<b,得到结果为真,值为1,所以d= 1;




优先级的问题:
int a = 2, b = 3,c = 4,d = 0;
(a = b) < (c + d);
printf("a = %d", a);  //a = 3;


如果改成:
a = b < (c + d);
结果是:a = 1;


因为 "<"优先级比"="优先级要高,而"()"的优先级比"<"高.



http://www.linuxidc.com/Linux/2014-12/110922.htm##2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值