char *words = ;
//計算word中元素個數
size_t words_size = sizeof(words)/sizeof(char*);
//使用陣列初始化words2(指標初始化)
list
words2(words,words+words_size);
解析
1、sizeof()
sizeof操作符返回乙個物件或型別名的長度,返回值型別為size_t, 長度單位為位元組。 有如下三種語法形式
sizeof(type name);
sizeof(expr);
sizeof expr;
sizeof用於expr上,將獲得該表示式的結果的型別長度
sale_item item, *p;
// 三種方式獲取物件型別sales_item的大小
sizeof(sale_item);// 取得物件型別 sale_item的大小
sizeof item; //item型別的大小, 即sizeof(sale_item)
sozeof *p; //p 指向型別的大小 即sizeof(sale_item)
將sizeof用於 expr是並沒有計算expr的值。特別是在sizeof *p中,指標p可以是乙個無效位址,因為不需要對p做解引用操作。
● 對char型別或值為char型別的表示式做sizeof操作結果為1.
●對引用型別做sizeof操作,將返回存放此引用型別物件所需的記憶體空間大小。
●對指標做sizeof操作,將返回存放指標所需的記憶體大小,注意,如果要獲取該指標指向物件的大小,則必須對該指標進行解引用。
●對陣列做sizeof操作等效於對其元素做sizeof操作的結果乘上陣列元素的個數。
因為sizeof返回整個陣列在記憶體中的儲存長度,所以用sizeof陣列的結果初一sizeof其元素型別的結果,即可求出陣列元素的個數:
int sz = sizeof(ia)/sizeof(*ia);
通常將8位的塊作為乙個位元組,32位或4個位元組作為乙個 「字」。一般的short為半個機器字長,int為乙個機器字長。
用sizeof 計算陣列長度
計算陣列長度時可以用 int array sizeof array 12 int length sizeof array sizeof array 0 3 char array abc sizeof array 4 考慮 0 strlen array 3 不考慮 0 int length sizeo...
sizeof()與 陣列長度獲取
獲取陣列長度 函式通過引數傳入乙個陣列的指標,如何獲取該陣列的長度?如 int find int array,int key 其中array的長度如何獲取?用過sizeof array sizeof int 但是結果不對,始終是1 滿意回答 int mylen int buf int main vo...
用sizeof測量陣列長度
今天本想寫乙個進行陣列排序的 但我被乙個bug困住了,事情是這樣的 int a 定義陣列 int n sizeof a 求陣列長度 int i 輸出陣列 printf 陣列 for i 0 i printf 10i a i 陣列 1549 93998 724199344 2981888 635684...