i++的认识
復習的時候遇到了一個有個關于運算符號以及優先級的問題
int i=0;
i=i++;
給我看傻了,從c語言書上的解釋i++意思就是先返回i的值,然后i再自增
所以最后i怎么都得等于1吧,但實際上結果是i=0。
實際上,不管是i++,還是++i都是i先自增
只是++i先自增,返回自增后的值
? ? ? ?i++先自增,返回自增前的值
但是用i++代碼來描述就是
int temp=i;
i=i+1;
return temp;
所以上述i=0;i=i++;
解釋:i=i++;(i自增變成1,然后返回0,此時0賦值給i,i又從1變成了0,做了無用功)
int a = 0;
int b = 0;
a = a++;
b = a++;
cout<<a<<" "<<b<<endl;
上述結果是a=1,b=0;
第一步:a=a++;(a自增變成1,返回0,此時0賦值給a,a又從1變成0,無用功)
第二步:b=a++;(a自增變成1,返回0,此時0賦值給b,b=0,而a還是1!)
總結
- 上一篇: 空域滤波算法对比分析(超级全面哒)——P
- 下一篇: CLion CMakeList的使用