Chinaunix首页 | 论坛 | 博客
  • 博客访问: 158946
  • 博文数量: 66
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-23 15:21
文章分类

全部博文(66)

文章存档

2016年(66)

我的朋友

分类: C/C++

2016-04-26 18:38:11

首先我们需要注意一点:单引号''和双引号“”的区别

(1):含义不同

单引号引起的一个字符代表一个整数,整数值对应于该字符在ASCII字符集中的序列值;


双引号引起的都是字符串,哪怕只有一个字符也是字符串,双引号引起的一个字符代表一个指向无名数组起始字符的指针;


比如:'.'代表十进制46,十六进制0x2E;


而"."代表指向起始字符为"."的某数组的指针;


(2):大小不同


单引号引起的一个字符大小就是一个字节;


双引号引起的一个字符大小是两个字节,因为双引号引起的字符串会在字符串的末尾添加一个0x00作为字符串的结束标识。



比较字符串:

方法一:

if (newbuf[0] == '1')
{
  XXXX;
}



 方法二:

if (strcmp(newbuf, "1") ==0)
{
    XXXX;
}

这种方法调用了库函数, 而且库函数调用通常比行内展开的代码慢,因为它需要付出函数调用的开销


方法一是比方法二高效的.
阅读(2087) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~