1. 程式人生 > >C:char 陣列長度計算

C:char 陣列長度計算

字元素組長度是計算‘\0’,還是不計算'\0';

char chs[7] = {'a', 'c', '0', 'z', '3','d'}; -----長度為6

char chs[7] = {'a', 'c', '0', 'z', '3','d', '/0'}; ------長度為6

char chs[] = {'a', 'c', '0', 'z', '3','d', '/0' }; --------長度為6

字元陣列的長度計算:必須以終止符’\0'作為邊界。
1. C語言允許用字串的方式對陣列作初始化賦值

字串總是以'/0'作為串的結束符;

因此當把一個字串存入一個數組時,也把結束符'/0'存入陣列,並以此作為該字串是否結束的標誌。

 char c[]="C program";

C   p r o g r a m /0

‘/0'是由C編譯系統自動加上的,所以在用字串賦初值時一般無須指定陣列的長度, 而由系統自行處理。

 2. sizeof 和 strlen 的區別

strlen只能用char*做引數,且該char陣列必須是以''/0''結尾的;

sizeof 即使在字元陣列沒有終止符'/0' 的時候,也能夠計算出陣列“長度”的原因,
但這裡的“長度”實際上是:編譯器分配給該陣列變數的記憶體大小!

char chs[] = {'a', 'c', '\0', 'z', '3','d'}; // sizeof(chs) = 6; 而strlen(chs) = 2. 

參考文章:

1. https://blog.csdn.net/sjtu_huang/article/details/6533140

2. https://blog.csdn.net/m0_37592397/article/details/79701992