1
可能重複:
Why does sizeof(x++) not increment x?C++:int i;的sizeof(++ⅰ); ...我沒有增加價值?
我這樣做
int i=1;
sizeof(++i);
cout<<i;
,輸出爲1爲什麼整數它的價值增加?
我知道這可能是一個愚蠢的問題,但我不知道還有什麼地方要問/尋找答案。
可能重複:
Why does sizeof(x++) not increment x?C++:int i;的sizeof(++ⅰ); ...我沒有增加價值?
我這樣做
int i=1;
sizeof(++i);
cout<<i;
,輸出爲1爲什麼整數它的價值增加?
我知道這可能是一個愚蠢的問題,但我不知道還有什麼地方要問/尋找答案。
sizeof
由編譯器在編譯時確定,只有參數的類型很重要。這就是爲什麼你可以有,例如
int *list = malloc(10*sizeof(*list));
即使list
在sizeof
被初始化。
簡短的回答是「因爲sizeof是一個編譯時操作符,結果僅基於參數的* type *,而參數本身是* not *評估。」 –