【linux c】sizeof与strlen的区别简述_学习笔记_008
通过一个简单的程序来了解sizeof和strlen的用法,以及和二者的区别。
#include <stdio.h> #include <string.h> void size() { printf(" ************************** "); char *ptr1 = "Hello word"; char ptr2[] = "Hello word"; char ptr3[100] = "Hello word"; printf("sizeof (*ptr1) = %d ",sizeof (ptr1)); //测量char *ptr的长度 printf("strlen(*ptr1) = %d ",strlen(ptr1)); //测量字符串的长度 printf("sizeof (ptr2[]) = %d ",sizeof (ptr2)); printf("strlen(*ptr2[]) = %d ",strlen(ptr2)); printf("sizeof (ptr3[]) = %d ",sizeof (ptr3)); printf("strlen(*ptr3[100]) = %d ",strlen(ptr3)); printf(" "); printf("sizeof (long) = %d ",sizeof (int)); //测量int型的长度 printf("sizeof (short) = %d ",sizeof (short)); printf("sizeof (long) = %d ",sizeof (long)); printf("sizeof (long long) = %d ",sizeof (long long)); printf("sizeof (float) = %d ",sizeof (float)); printf("sizeof (double) = %d ",sizeof (double)); printf("sizeof (char) = %d ",sizeof (char)); printf(" ************************** "); } int main() { size(); return 0; }
<span style="font-size:18px;">结果如下</span>
在实际操作中发现,sizeof的书写格式为:
sizeof(空格)(需要测量的变量名或数据类型)
其中空格可有可无,对变量的测量还可写成:
sizeof(空格)变量名
测量数据类型时括号不可省略。
由此可见,sizeof并不是一个函数,sizeof是一个运算符。
sizeof与strlen的区别总结为以下几点:
序号 |
sizeof |
strlen |
1 |
运算符 |
函数 |
2 |
测量数组时,测量值为编译器为该数组分配的空间的大小 |
返回值为数组中字符的个数,遇到’ ’截止,不包括’ ’ |
3 |
可以测量变量所占的内存空间大小,以及数据类型的大小,测量单位为字节 |
只能测量字符串的长度,且结尾必须为’ ’ |
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: 【c#】c#中 数组 的基本操作