C:char 陣列長度計算
阿新 • • 發佈:2018-12-01
字元素組長度是計算‘\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