【linux c】sizeof与strlen的区别简述_学习笔记_008
2016-07-16 15:49
381 查看
通过一个简单的程序来了解sizeof和strlen的用法,以及和二者的区别。
在实际操作中发现,sizeof的书写格式为:
sizeof(空格)(需要测量的变量名或数据类型)
其中空格可有可无,对变量的测量还可写成:
sizeof(空格)变量名
测量数据类型时括号不可省略。
由此可见,sizeof并不是一个函数,sizeof是一个运算符。
sizeof与strlen的区别总结为以下几点:
[align=center]
[/align]
#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]
相关文章推荐
- Linux socket 初步
- Linux Kernel 4.0 RC5 发布!
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- 如何组织构建多文件 C 语言程序(二)
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程