解析一個有關sizeof用法的題目--sizeof(i++)
更新時間:2013年06月04日 10:39:15 作者:
本篇文章是對一個關于sizeof用法的題目進行了詳細的分析介紹,需要的朋友參考下
復制代碼 代碼如下:
#include <stdio.h>
int main()
{
int i;
i = 10;
printf("%d\n", i);
printf("%d\n", sizeof(i++));
printf("%d\n", i);
return 0;
}
這三行輸出應該是什么?
答案是:
10
4
10
第三個為什么不是11? i為什么沒有自增?
請看C++標準;
5.3.3 sizeof
The sizeof operator yields the number of bytes in the object representation of its operand. The operand is either an expression, which is an unevaluated operand (Clause 5), or a parenthesized type-id.
也就是說,如果sizeof的操作數(shù)是一個表達式的話,這個表達式時不會被計算的。
sizeof當預處理看就行了,它后面括號里的東西,根本不求值,只根據(jù)C的一堆規(guī)則判斷結果類型,然后返回結果類型的大小
另外一個操作符typeid也是如此。
相關文章
C++中常見容器類的使用方法詳解(vector/deque/map/set)
C++中常見的容器類有vector、list、deque、map、set、unordered_map和unordered_set。下面將舉例直接說明各個容器的使用方法,希望對大家有所幫助2023-03-03C語言中使用qsort函數(shù)對自定義結構體數(shù)組進行排序
這篇文章主要介紹了C語言中使用qsort函數(shù)對自定義結構體數(shù)組進行排序,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11