发布网友 发布时间:2024-10-23 23:02
共1个回答
热心网友 时间:2024-11-16 05:07
执行int a=1; printf("%d, %d, %d\n", a, ++a, a++)的结果为3,3,1。这个语句的输出结果不是唯一的,因为对于求值的顺序是不一定的,所以说还有可能输出的结果为1,2,2。
当求值的顺序为自右向左是,那么a++先引用1然后再加1,会输出1,然后++a是先加1再引用,会输出3这个结果,最后输出一下a,结果为3。结果为:3,3,1。
当求值的顺序为自左向右的话,先输出一下a,输出1,然后++a,先加1再引用,输出2,然后a++先引用再加1,引用2,所以输出2,结果为:1,2,2。
主要就是要注意:printf()语句多个参数的执行顺序,从右往左的,但是不同编译器可能不同。
扩展资料:
printf参数表的注意:
参量表是需求输出的一系列参数,其个数务必与式样化字符串所阐明的输出参数个数一样多,各参数之间用英文逗号“,”分开,且顺序逐一对应,不然将会出现意想不到的错误。
printf使用注意:
函数printf从右到左压栈,然后将先读取放到栈底,最后读取的放在栈顶,处理时候是从栈顶开始的,所以我们看见的结果是,从右边开始处理的。(会因编译器的不同而不同,但是大部分一样)
printf函数格式:
printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。
函数的原型为:
int printf(const char *format,…);
参考资料来源:百度百科-printf()