sizeof与strlen的不同表现
看程序说结果:
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[])
{
char* szHello = "Hello";
printf("%d\r\n", sizeof(szHello));//输出指针变量长度,32位的均为4字节
printf("%d\r\n", sizeof("Hello"));//编译器将0也包含在内
//以自然人角度输出字符串长度,找到内存地址,以0位结束标志
printf("%d\r\n", strlen(szHello));
printf("%d\r\n", strlen("Hello"));//对“hello”进行数总共的字节数
return 0;
}
运行结果:
1. 关于sizeof与strlen的对比总结:
- sizeof是运算符,编译时求各种变量、类型大小,对字符串会包括结尾的’\0’
- strlen是函数,求字符串的长度,不包括结尾的’\0’
2. 学习视频地址:对于字符串的sizeof与strlen的区别