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
请按任意键继续. . .
原文地址:http://10742272.blog.51cto.com/10732272/1770225