C/C++知识要点4——printf函数以及cout的计算顺序

来源:互联网 发布:c语言中char怎么用 编辑:程序博客网 时间:2024/05/23 14:19


printf函数的计算顺序:先从右到左压栈,然后从左到右出栈


例程:

#include"stdio.h"int main(){int arr[] = { 1, 2, 3, 4, 5 };int *ptr = arr;printf("%d %d\n", *ptr, *(++ptr));return 0;}

输出:2 ,2



计算顺序:先计算*(++ptr),进行压栈,然后计算*(ptr),再压栈。


注意:++ptr 和 ptr++ 的计算顺序,会导致不同结果。


#include"stdio.h"int main(){int arr[] = { 1, 2, 3, 4, 5 };int *ptr = arr;printf("%d %d\n", *ptr, *(ptr++));return 0;}

输出:2, 1



计算顺序:先压栈*(ptr),然后执行++操作,之后,压栈*(ptr),输出的时候,从左到右依次出栈,所以结果为2,1


cout 计算顺序也一样。


见例程:

#include"iostream"using namespace std;int main(){int arr[] = { 1, 2, 3, 4, 5 };int *ptr = arr;cout << *(ptr) << " " << *(ptr++) << " "<<*(ptr++)<<endl;return 0;}

输出:



2 0
原创粉丝点击