本文共 1061 字,大约阅读时间需要 3 分钟。
int c = 5;cout<<(c = 2)<<" "<<(c = 3)<<" "<<(c = 1)<<endl;
cout是从右到左依次求解,再输出的
2 2 2
int a = 1;
cout<<a++<<" "<<a<<endl; int b = 1; cout<<++b<<" "<<b<<endl;output:
1 2
2 2
如果是
cout << sizeof(a++) << a << endl
output:
4 1
sizeof更像一个特殊的宏,它是在编译阶段求值的。举个例子:
cout<<sizeof(int)<<endl; // 32位机上int长度为4 cout<<sizeof(1==2)<<endl; // == 操作符返回bool类型,相当于 cout<<sizeof(bool)<<endl; |
cout<<4<<endl; cout<<1<<endl; |
int a = 0; cout<<sizeof(a=3)<<endl; cout<<a<<endl; |
int a = 0; cout<<4<<endl; cout<<a<<endl; |
int f1(){ printf("f1()\n"); return 1;}int f2(){ printf("f2()\n"); return 2;}int f3(){ printf("f3()\n"); return 3;}int main(void) { int i = 0; int j = 0; //printf("%d %d\n",i,i++);//0 0 //cout<<<" "< <
一般来讲是,从右向左,依次压入栈中,然后再依次弹出
但是对于i,++i,之类的,的确没有什么规律。。。
转载地址:http://yveti.baihongyu.com/