解析一個(gè)有關(guān)sizeof用法的題目--sizeof(i++)
更新時(shí)間:2013年06月04日 10:39:15 作者:
本篇文章是對一個(gè)關(guān)于sizeof用法的題目進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
復(fù)制代碼 代碼如下:
#include <stdio.h>
int main()
{
int i;
i = 10;
printf("%d\n", i);
printf("%d\n", sizeof(i++));
printf("%d\n", i);
return 0;
}
這三行輸出應(yīng)該是什么?
答案是:
10
4
10
第三個(gè)為什么不是11? i為什么沒有自增?
請看C++標(biāo)準(zhǔn);
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ù)是一個(gè)表達(dá)式的話,這個(gè)表達(dá)式時(shí)不會(huì)被計(jì)算的。
sizeof當(dāng)預(yù)處理看就行了,它后面括號里的東西,根本不求值,只根據(jù)C的一堆規(guī)則判斷結(jié)果類型,然后返回結(jié)果類型的大小
另外一個(gè)操作符typeid也是如此。
您可能感興趣的文章:
- C/C++ 中sizeof(''a'')對比詳細(xì)介紹
- 淺析C/C++中被人誤解的SIZEOF
- C語言中sizeof函數(shù)的基本使用總結(jié)
- C語言位運(yùn)算和sizeof運(yùn)算符詳解
- C++無法重載點(diǎn)符號、::、sizeof等的原因
- 詳解C++編程中的sizeof運(yùn)算符與typeid運(yùn)算符
- C語言中sizeof()與strlen()函數(shù)的使用入門及對比
- C語言中關(guān)于sizeof 和 strlen的區(qū)別分析
- C#中sizeof的用法實(shí)例分析
- 淺析C語言中的sizeof
- C/C++中的sizeof運(yùn)算符和size_t類型的詳解
相關(guān)文章
C++中常見容器類的使用方法詳解(vector/deque/map/set)
C++中常見的容器類有vector、list、deque、map、set、unordered_map和unordered_set。下面將舉例直接說明各個(gè)容器的使用方法,希望對大家有所幫助2023-03-03C++實(shí)現(xiàn)學(xué)生成績管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)學(xué)生成績管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12C語言中使用qsort函數(shù)對自定義結(jié)構(gòu)體數(shù)組進(jìn)行排序
這篇文章主要介紹了C語言中使用qsort函數(shù)對自定義結(jié)構(gòu)體數(shù)組進(jìn)行排序,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11