您的位置:首页 > 运维架构 > Linux

【linux c】sizeof与strlen的区别简述_学习笔记_008

2016-07-16 15:49 381 查看
通过一个简单的程序来了解sizeof和strlen的用法,以及和二者的区别。
#include <stdio.h>
#include <string.h>

void size()
{
printf("\n**************************\n");

char *ptr1 = "Hello word";
char ptr2[] = "Hello word";
char ptr3[100] = "Hello word";

printf("sizeof (*ptr1) = %d\n",sizeof (ptr1));		//测量char *ptr的长度
printf("strlen(*ptr1) = %d\n",strlen(ptr1));		//测量字符串的长度
printf("sizeof (ptr2[]) = %d\n",sizeof (ptr2));
printf("strlen(*ptr2[]) = %d\n",strlen(ptr2));
printf("sizeof (ptr3[]) = %d\n",sizeof (ptr3));
printf("strlen(*ptr3[100]) = %d\n",strlen(ptr3));
printf("\n");

printf("sizeof (long) = %d\n",sizeof (int));		//测量int型的长度
printf("sizeof (short) = %d\n",sizeof (short));
printf("sizeof (long) = %d\n",sizeof (long));
printf("sizeof (long long) = %d\n",sizeof (long long));
printf("sizeof (float) = %d\n",sizeof (float));
printf("sizeof (double) = %d\n",sizeof (double));
printf("sizeof (char) = %d\n",sizeof (char));

printf("\n**************************\n");
}

int main()
{
size();

return 0;
}
<span style="font-size:18px;">结果如下</span>




在实际操作中发现,sizeof的书写格式为:

sizeof(空格)(需要测量的变量名或数据类型)

其中空格可有可无,对变量的测量还可写成:

sizeof(空格)变量名

测量数据类型时括号不可省略。

由此可见,sizeof并不是一个函数,sizeof是一个运算符。

 

sizeof与strlen的区别总结为以下几点:

序号
sizeof
strlen
   1

运算符

函数

 2
测量数组时,测量值为编译器为该数组分配的空间的大小

返回值为数组中字符的个数,遇到’\0’截止,不包括’\0’

   3

可以测量变量所占的内存空间大小,以及数据类型的大小,测量单位为字节

只能测量字符串的长度,且结尾必须为’\0’

[align=center]
[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 linux