c语言中取地址解析
2016-09-24 16:29
253 查看
定义:int a[2],*p =a;表示a[1]的地址有p+1,a+1,++p
我试了一下a++怎么不行,查了之后说是
参考:http://blog.csdn.net/lyn_bigdream/article/details/8181850
还有逗号运算符的级别是最低的
例子:int a[2],x=2,y=5;
a[0]=(x+3,y++,x++);那么最终结果是:a[0]=2 x=3 y=6;
为何a[0]=2:因为(x++)是运算之后再自加
a[1]=(x++,x+3,x+7);那么最终结果是:a[1]=11 ,x=4
第一反应,我以为a[1]=10,就是3+7;其实是错的。
计算a[0]的时候,x++了一次,此时x=3;计算a[1]的时候,又x++一次,此时x=4,因此a[1]=4+7=11
不信你改成a[1]=(x++,x+7,x+3);调试一下,逗号表达试结果是7,就是4+3,说明经过一个逗号,x已经自加变成4了。
我试了一下a++怎么不行,查了之后说是
参考:http://blog.csdn.net/lyn_bigdream/article/details/8181850
还有逗号运算符的级别是最低的
例子:int a[2],x=2,y=5;
a[0]=(x+3,y++,x++);那么最终结果是:a[0]=2 x=3 y=6;
为何a[0]=2:因为(x++)是运算之后再自加
a[1]=(x++,x+3,x+7);那么最终结果是:a[1]=11 ,x=4
第一反应,我以为a[1]=10,就是3+7;其实是错的。
计算a[0]的时候,x++了一次,此时x=3;计算a[1]的时候,又x++一次,此时x=4,因此a[1]=4+7=11
不信你改成a[1]=(x++,x+7,x+3);调试一下,逗号表达试结果是7,就是4+3,说明经过一个逗号,x已经自加变成4了。
相关文章推荐
- C语言 内存分配 地址 指针 数组 参数 实例解析
- 【嵌入式开发】C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言--对数组地址的解析
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言 内存分配 地址 指针 数组 参数 实例解析
- 【嵌入式开发】C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言 内存分配 地址 指针 数组 参数 解析
- C语言--对数组地址的解析
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言 内存分配 地址 指针 数组 参数 实例解析 (C语言复习)
- C语言 内存分配 地址 指针 数组 参数 实例解析
- 用正则解析图片地址,并利用XMLHTTP组件将其保存[整理]
- Linux的硬件地址解析过程
- 一个解析URL及图片地址的JS函数
- 用XMLHTTP组件解析图片地址并保存
- C语言的函数传地址(25)
- 解析C语言中的sizeof