陣列 字串的大小

2021-07-29 20:12:10 字數 3433 閱讀 7306

首先,先看這樣一段程式:

#include 

int main()

;printf("%p\n", arr);

printf("%d\n", *arr);

return

0;}

執行的結果:

這裡,printf(「%p\n」, arr),指的是列印陣列arr的首元素arr[0]的位址,為00d5f14;printf(「%d\n」, *arr),指的是列印指向陣列arr的首元素arr[0]的內容。

通過以上,下面說一下有關陣列的一些運算:

//整型一維陣列

#include

int main()

; printf("%d\n",sizeof(a));

//16 sizeof(陣列名)指的是乙個int整型所佔記憶體大小。

printf("%d\n",sizeof(a+0));

//4 sizeof(陣列名+偏移量)指數組的首元素a[0]偏移0位後的記憶體大小

printf("%d\n",sizeof(*a));

//4 sizeof(指標+陣列名)指數組首元素的位址的大小

printf("%d\n",sizeof(a+1));

//4 sizeof(指標+陣列名+偏移量)指數組a[1]的位址的大小

printf("%d\n",sizeof(a[1]));

//4 sizeof(陣列)指數組中某一元素所佔記憶體大小

printf("%d\n",sizeof(&a));

//4 sizeof(&陣列名)指數組首元素a[0]位址的大小,僅僅int型位址

printf("%d\n",sizeof(&a+1));

//4 sizeof(&陣列名+偏移量)指數組最後元素加偏移量,即陣列之外的位址的大小,

printf("%d\n",sizeof(&a[0]));

//4 sizeof(&陣列)指數組某個元素的位址的大小

printf("%d\n",sizeof(&a[0]+1));

//4 sizeof(&陣列+偏移量)指數組某個元素的位址加偏移量的大小

return

0;}

//#include

//int main()

//;//

printf("%p\n", arr);

//printf("%d\n", *arr);//這裡輸出什麼?

// return

0;//}

////整型一維陣列

//#include

//int main()

//;//

printf("%d\n",sizeof(a)); //

16 sizeof(陣列名)指的是乙個int整型所佔記憶體大小。

// printf("%d\n",sizeof(a+0)); //

4 sizeof(陣列名+偏移量)指數組的首元素a[0]偏移0位後的記憶體大小

// printf("%d\n",sizeof(*a)); //

4 sizeof(指標+陣列名)指數組首元素的大小

// printf("%d\n",sizeof(a+1)); //

4 sizeof(指標+陣列名+偏移量)指數組a[1]的位址的大小

// printf("%d\n",sizeof(a[1])); //

4 sizeof(陣列)指數組中某一元素所佔記憶體大小

// printf("%d\n",sizeof(&a)); //

4 sizeof(&陣列名)指數組首元素a[0]位址的大小,僅僅int型位址

// printf("%d\n",sizeof(&a+1)); //

4 sizeof(&陣列名+偏移量)指數組最後元素加偏移量,即陣列之外的位址的大小,

// printf("%d\n",sizeof(&a[0])); //

4 sizeof(&陣列)指數組某個元素的位址的大小

// printf("%d\n",sizeof(&a[0]+1));//

4 sizeof(&陣列+偏移量)指數組某個元素的位址加偏移量的大小

// return

0;//}

//char字元陣列

#include

#include

int main()

; printf("%d\n", sizeof(arr)); //

6 char型陣列的大小6個元素

printf("%d\n", sizeof(arr+0)); //

4 指數組的首元素a[0]偏移0位後的記憶體大小

printf("%d\n", sizeof(*arr)); //

1 指向乙個char型首元素arr[0]大小

printf("%d\n", sizeof(arr[1])); //

1 陣列arr[1]所佔記憶體的大小

printf("%d\n", sizeof(&arr)); //

4 陣列arr位址的大小

printf("%d\n", sizeof(&arr+1)); //

4 陣列arr之外的位址的大小

printf("%d\n", sizeof(&arr[0]+1));//

4 陣列首元素arr[0]的位址加1的大小

printf("%d\n", strlen(arr)); //x 在strlen語句,要在陣列找到\0才停下來,隨機值

printf("%d\n", strlen(arr+0)); //x 在strlen語句,要在陣列找到\0才停下來,隨機值

printf("%d\n", strlen(*arr)); //error arr[0]='a',ascii碼97,strlen(97)

printf("%d\n", strlen(arr[1])); //error arr[1]='b',ascii碼98,strlen(98)

printf("%d\n", strlen(&arr)); //x arr[0],要在陣列找到\0才停下來,隨機值

printf("%d\n", strlen(&arr+1)); //x 陣列外,要在陣列找到\0才停下來,隨機值

printf("%d\n", strlen(&arr[0]+1)); //x arr[0]位址加1 ,要在陣列找到\0才停下來,隨機值

return

0;}

字串 字串陣列 字元陣列的區別

string a newstring 字串 string a newstring 5 字串陣列 char a newchar 5 字元陣列 string a newstring abc 字串 string a newstring 字串陣列的賦值 string a 字串陣列的初始化 char a ne...

字串 字元陣列 字串陣列 字元陣列的相互轉換

1 字串 字元陣列的相互轉換 string strstringtype my string 建立乙個字串 charchrchararray 建立乙個字元陣列 chrchararray strstringtype.tochararray 將字串轉換為字元陣列 strstringtype string....

字串,字串陣列,字串指標!!

字串 字元陣列實際上是一系列字元的集合,也就是 字串 string 字串陣列 在c語言中,沒有專門的字串變數,沒有string型別,通常就用乙個字元陣列來存放乙個字串。c語言規定,可以將字串直接賦值給字元陣列 在c語言中,字串總是以 0 作為串的結束符。上面的兩個字串,編譯器已經在末尾自動新增了 0...