sizeof 和strlen()的区别

来源:互联网 发布:ajax javascript区别 编辑:程序博客网 时间:2024/06/05 16:19
<span style="font-size:18px;">char *ptr = "hello world";char ptr[100] = "hello world";char ptr[] = "hello world";</span>
<span style="font-size:18px;">上述三行代码每行的sizeof(ptr)和strlen(ptr)的值分别是多少呢?</span>
<span style="font-size:18px;">首先第一行:sizeof(ptr)=4(32位操作系统下)</span>
<span style="font-size:18px;">            strlen(ptr)=11</span>
<span style="font-size:18px;">第二行:sizeof(ptr)=100</span>
<span style="font-size:18px;">        strlen(ptr)=11</span>
<span style="font-size:18px;">第三行:sizeof(ptr)=12</span>
<span style="font-size:18px;">        strlen(ptr)=11</span>
<span style="font-size:18px;">  首先,sizeof并不是一个函数,而是一个操作数,而strlen()是一个函数。</span>
<span style="font-size:18px;">  其次,sizeof是求字节长度,strlen()是求字符串长度。字符串长度是遇到'\0'就结束运算,所以返回值是11;而*ptr是指针变量,指针变量保存的是地址,地址位数由操作系统来决定,如果操作系统是64位,那么上述代码的第一行答案则是8,ptr[100]是因为我们在定义变量的时候已经给其分配了100的字节长度,所以答案是100;而ptr[]则根据字符串和'\0'的长度和求得4.</span>
0 0
原创粉丝点击