重点_sizeof()和strlen().c

*sizeof()是计算括号中变量的类型所占的储存空间(不考虑内容)
*strlen()是计算变量值为起点的内存地址到第一个空字符’\0’的距离,以字节为单位,字符串尾部为’\0’ *简单理解:
*sizeof()是类型的长度, strlen()是有效字符串的长度,不包括空字符

#include <stdio.h>
#include <string.h>  //目的:调用取字符串长度strlen()
#define NUM 56  //声明int常量
#define STR "Hello"
#define CH 'A'

int main(void)
{
	int n = 56;
	printf("int n = 56的sizeof:%d\n\n", sizeof(n));

	/*char a[5] = {'a', 'b', 'c', 'd', 'e'};
	printf("char a[5] = \"Hello\"的sizeof:%d\n", sizeof(a));
	printf("char a[5] = \"Hello\"的strlen:%d\n\n", strlen(a));*/

	char m = 'A';
	printf("char m = \'A\'的sizeof:%d\n\n", sizeof(m));  //字符以int类型保存,所以sizeof(CH)=4

	int array1[50] = { 4, 4, 4, 4 };
	printf("int array1[50]的sizeof:%d\n\n", sizeof(array1)); //int数组以int类型保存,所以sizeof(array)=4*50=200

	long long array2[50] = { 4, 4, 4, 4 };
	printf("long long array2[50]的sizeof:%d\n\n", sizeof(array2));  //long long数组以int类型保存,所以sizeof(array)=8*50=400

	char array3[50] = { 4, 4, 4, 4 };
	printf("char array3[50] = { 4, 4, 4, 4 }的sizeof:%d\n\n", sizeof(array3));
	printf("char array3[50] = { 4, 4, 4, 4 }的strlen:%d\n\n", strlen(array3));

	char *s = "0123456789";
	printf("char *s = \"0123456789\"的sizeof:%d\n\n", sizeof(s));
	printf("char *s = \"0123456789\"的strlen:%d\n\n", strlen(s));

	char ss[] = "0123456789";
	printf("char ss[] = \"0123456789\" 的sizeof:%d\n\n", sizeof(ss));
	printf("char ss[] = \"0123456789\" 的strlen:%d\n\n", strlen(ss));

	getchar();
	return 0;

}
原创文章 7 获赞 10 访问量 271

猜你喜欢

转载自blog.csdn.net/lpblog/article/details/105821089