sizeof函數:
求的是字節數,如int型在32平臺下是4個字節,char是1個字節,任何類型的指針都是4個字節。
stelen函數:
求的是字符串的長度,不包括'\0'。
以下是用在一維數組和二維數組中區別兩個函數的例子:
(1)一維數組
int a[] = { 1, 2, 3, 4 }; printf("%d\n", sizeof(a)); printf("%d\n", sizeof(a + 0)); printf("%d\n", sizeof(*a)); printf("%d\n", sizeof(a + 1)); printf("%d\n", sizeof(a[1])); printf("%d\n", sizeof(&a)); printf("%d\n", sizeof(&a + 1)); printf("%d\n", sizeof(&a[0])); printf("%d\n", sizeof(&a[0] + 1));
輸出結果:
16
4
4
4
4
4
4
4
請按任意鍵繼續. . .
解析:
(2)二維數組
int a[3][4] = { 0 }; printf("%d\n", sizeof(a)); printf("%d\n", sizeof(a[0][0])); printf("%d\n", sizeof(a[0])); printf("%d\n", sizeof(a[0] + 1)); printf("%d\n", sizeof(a + 1)); printf("%d\n", sizeof(&a[0] + 1)); printf("%d\n", sizeof(*a)); printf("%d\n", sizeof(a[3]));
輸出結果:
48
4
16
4
4
4
16
16
請按任意鍵繼續. . .
解析看下篇 sizeof()與strlen()(2)