知识点这一篇是简化容易记忆的版本
全面细致了解看 指针基础知识点合集5(基础入门到深入理解)
1.sizeof() :求占内存
2.strlen函数: \0 之前字符串 字符的个数
#include <stdio.h>
#include <string.h>
int main()
{
char arr1[]="abcd";//d的后面自动补上\0;
char arr2[]={'a','b','c','d'};//以单个元素赋值,没有\0的结束符
printf("strlen1=%d\n",strlen(arr1));//strlen()计算\0之前的字符长度
printf("strlen2=%d\n",strlen(arr2));//该处计算结果应为随机值,没有\0
printf("sizeof1=%d\n",sizeof(arr1));//计算了包含\0的数据空间大小
printf("sizeof2=%d\n",sizeof(arr2));//4个字符所以为4
return 0;
}
3.二级真题
第一题:
解析:
字符变量一个只占一个字节
sizeof(name)=1*10=10;
strlen(name) 遇见\0结束,=6;
sizeof(str) 因为str是一个字符指针变量,存放的是数组首元素地址,是一个地址,因此为4
任何地址都为4
strlen(str) 因为str指向的是name 此时name只放了6个元素,所以为6
答案:10 6 4 6
第二题:
sizeof(b)因为b是指针所以必然是4