您的位置:首页 > 编程语言 > C语言/C++

几个容易出错的知识点:单引号双引号/逻辑运算符/位运算符

2016-08-06 22:07 253 查看


[align=center]单引号 双引号[/align]

单引号引起来的是字符常量,双引号引起来的是字符串常量

特例:

1 ‘1’ “1”在32位系统下分别占几个字节?

1: 4个字节,是一个整型常数

‘1’:1个字节,以ASCII码的形式存储

“1”:2个字节,其后隐含结束符:\

三者表示的意义完全不同,所占的内存也完全不同

逻辑运算符 || && 和 按位运算符 | &


逻辑运算符&& || 中,如果&&的第一个运算数是false,就不再考虑第二个运算数,直接返回false;如果||的第一个运算数是true,也不再考虑第二个运算数,直接返回true。
#include

int main(void)
{
int i = 0;
int j = 0;
if((++i>0)||(++j>0))
{
printf("i = %d,j = %d\n",i,j);
}
getchar();
return 0;
}


结果是: i=1,j=0
原因:if((++i>0)||(++j>0))语句中,先计算(++i>0),发现结果为真,后面的++j便不再计算

逻辑与/逻辑或 && || 和按位与/按位或 & |完全是两个不同的概念
按位与运算符 & 是双目运算符,其功能是参与运算的两数各对应的二进位相与;
按位与运算符 | 也是双目运算符,其功能是参与运算的两数各对应的二进位相或。

例如: 10&3 : 00001010

00000011


00000010
所以: 10&3=2
按位与运算通常用来对某些位清0或保留某些位:
例如将51单片机的P0口的P1^0~P1^5清0,而P1^6,P1^7保持原状态不变: P1 = P1&0xc0;
按位或运算通常用来将源操作数某些位置1,其它位不变。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++