Pointers On C Chapter 9
来源:互联网 发布:js input数组 编辑:程序博客网 时间:2024/05/18 01:54
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ char a[] ="Hello World"; char b[] = "I want to go home"; printf("a的长度为:%d\n",strlen(a)); printf("b的长度为:%d\n",strlen(b)); if(strlen(a) - strlen(b) <= 0) printf("a is shorter than b"); else printf("a is longer than b"); return 0;}
输出 a is longer than b
注意strlen 返回的是一个类型为size_t的值,这个类型是在头文件stddef.h定义的,是一个无符号整形,在表达式中使用无符号数可能会导致不可预料的后果,例如下面的 两个例子看上去是相等的;
if( strlen(x) >= strlen(y)) ……
if(strlen(x)-strlen(y) >= 0)……
事实上他们是不相等的,第一条按照你预想的那样工作,第二条语句将永远为真,strlen的结果是个无符号数,无符号数绝不可能是负数,第二条语句的左边也将是无符号数
表达式中如果同时包含了有符号数和无符号数,可能会产生一个奇怪的结果,
if(strlen(x)>=10)…
if(strlen(x)-10 >=0)…
两句返回的结果不一样的
/** * 计算字符串参数的长度 */size_tstrlen(char const *string){ int length; for(length=0;*string++ != '\0';) length += 1; return length;}
摘自C和指针P176
0 0
- Pointers On C Chapter 9
- <Pointers on C> Chapter 1
- <Pointers on C> Chapter 2
- <Pointers on C> Chapter 4
- Pointers on C——6 Pointers.9
- 《Pointers on C》备忘
- Pointers ON C
- POINTERS ON C
- POINTERS ON C (一)
- POINTERS ON C (二)
- POINTERS ON C 读书日记
- 【Pointers On C】struct 详解
- Pointers on C——7 Functions.9
- Pointers on C——8 Arrays.9
- Pointers on C——10 Structures and Unions.9
- Pointers on C——6 Pointers.1
- Pointers on C——6 Pointers.2
- Pointers on C——6 Pointers.3
- property_get/property_set
- 迭代器
- 等待所有子进程结束
- C中为动态数组连续分配内存空间
- 修改捕鱼结算
- Pointers On C Chapter 9
- robotium 测试一
- 对图像文件(jpg和tif)中各种属性存放方式的研究
- 如何成为一名优秀的web前端工程师
- c#的new、abstract、virtual、override,sealed关键字区别
- U盘安装rhel7后使用本地yum源
- Solr入门配置
- onStartCommand NullPointerException
- 四个数的排列组合问题