码迷,mamicode.com
首页 > 其他好文 > 详细

size和strlen

时间:2017-03-26 14:31:29      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:返回   环境   字符数组   pre   指针   字符串   32位   文件   print   


sizeof运算符(用法类似函数)
作用:用来返回()里面变量或者数据类型占用的内存字节数。

sizeof存在的价值?
主要是因为在不同平台下各种数据类型所占的内存字节数不尽相同(譬如int在32位系统中为4字节,在16位系统中为2字节···)。所以程序中需要使用sizeof来判断当前变量/数据类型在当前环境下占几个字节。

 

strlen是一个C库

函数(可用man strlen 查看在哪个头文件中)
作用:测量字符串的有效长度,一定要注意strlen接收的参数必须是一个字符串(字符串的特征是以‘\0‘结尾)

例如:

char str[] = "hello"; 
printf("sizeof(str) = %d.\n", sizeof(str));    // 6    将\0也算在内
printf("sizeof(str[0]) = %d.\n", sizeof(str[0]));    // 1    打印的是首字符
printf("strlen(str) = %d.\n", strlen(str));    // 5    字符串的有效长度,不包括末尾符

注:str[]是字符串数组,在末尾是用“\0”结尾;

 


例子2:

char str[] = "hello"; 
char *p = str; 
printf("sizeof(p) = %d.\n", sizeof(p));    // 4 相当于sizeof(char *),指针变量的长度
printf("sizeof(*p) = %d.\n", sizeof(*p));    // 1 相当于sizeof(char),字符数组的首字符长度
printf("strlen(p) = %d.\n", strlen(p));    // 5 相当于strlen(str),字符串的有效长度

注:在32位的系统中所有的指针长度都为4:    

 (参考朱有鹏老师代码)




size和strlen

标签:返回   环境   字符数组   pre   指针   字符串   32位   文件   print   

原文地址:http://www.cnblogs.com/ziv3/p/6621498.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!