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)