C语言基础语法第七章字符串 demo3_sizeof和strlen区别很重要
1.sizeof会计算字符串的结束标志 ‘\0’
2.strlen会计算字符串的有效长度 单不包括字符串的结束标志’\0’
3.代码示例:
#include <stdio.h>
#include <string.h>
void test()
{
}
int main()
{
char cdata[]="hello";
printf("sizeof_cdata:%d\n",sizeof(cdata));//sizeof_cdata:6 sizeof会计算字符串的结束标志 '\0'
printf("strlen_cdata:%d\n",strlen(cdata));//strlen_cdata:5
// strlen会计算字符串的有效长度 单不包括字符串的结束标志'\0'
void (*ptest)();
ptest=test;
char *p = "hello";
//p是一个char*,sizeof来计算的时候,得出是计算机用多少字节来表示一个地址
//在os中一个地址用8个字节来表示
printf("sizeof_p:%d\n",sizeof(p));//sizeof_p:8
printf("sizeof_char*:%d\n",sizeof(char*));//sizeof_char*:8
printf("sizeof_int*:%d\n",sizeof(int*));//sizeof_int*:8
printf("sizeof_char:%d\n",sizeof(char));//sizeof_char:1
printf("sizeof_ptest:%d\n",sizeof(ptest));//sizeof_ptest:8
printf("strlen_p:%d\n",strlen(p));//strlen_p:5
return 0;
}