逗号表达式小试
来源:互联网 发布:数据库零基础教程 编辑:程序博客网 时间:2024/06/06 10:43
//自增表达式作为函数参数时,求值顺序是从后往前://void f(int i, int j, int k)//{// printf("\n%d %d %d", i, j, k); //3,2,1//}//void main()//{// int i = 1;// f(i, i++, i++);// printf("\n%d", i); // printf("%d %d %d %d", i,i++, i++,i++);// getchar();//}
这里打印出来的结果是
而不是我想象中的3,3,3,3.
原因是因为自增表达式作为函数参数的时候,求值顺序是从后往前的。
void main(){ int a[10] = { 2,0,3,4 }; int *p1 = &a[0], *p2 = &a[1]; printf("%d %d", *p1, *p2); //2,0 p1 = p1 + 1; //p1 = &a[1] *p2 = *p2 + 1; //a[1] += 1 a[1] = 1 printf("\n%d %d", a[0], a[1]); //2,1 printf("\n%d %d", *p1, *p2); //1,1 printf("\n%d %d",(*p1++) * *p2++,(*p2)++); printf("\n%d", *p2); getchar();}
就如同这个题在最后一步printf(“(p1++) *p2++,(*p2)++”);得到的结果是4和1,一开始想不通,于是我选择分别在前面打印(*p1++)和(*p2++),结果的到确是2和1,明显他们相乘的结果不可能等于4.
阅读全文
0 0
- 逗号表达式小试
- 逗号表达式
- 逗号表达式
- 逗号表达式
- 逗号表达式
- 逗号表达式
- 逗号表达式
- 逗号表达式
- 逗号表达式
- 逗号表达式
- 逗号表达式
- 逗号表达式
- 逗号表达式
- 逗号表达式
- 逗号表达式
- 逗号表达式
- 逗号表达式
- 逗号表达式
- 文章标题
- beego 项目搭建与启动
- 数据列表
- jsp/servlet 九大对象 Day03
- 《Java源码分析》:ReferenceQueue、Reference及其子类
- 逗号表达式小试
- Spring AOP
- WebMagic爬虫入门教程(二)一个完整的爬取动漫之家的实例
- Linux 在统治着计算机世界
- 简易Struts2登录实现
- Post 提交,参数太长解决方案
- PPT这样学就对了之半图型目录制作教程
- 工具-采集数据
- fopen函数、fopen_s函数、fclose函数、fscanf函数、memset函数、strcpy函数、strcpy_s函数、strcat函数和fprintf函数用法?