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

【二】C++基于C的一些改变

2015-08-14 11:01 267 查看
1、布尔类型

C++在C语言的基本类型系统之上增加了bool;

实际上,C99的标准中也引入了bool类型,使用时需要引用stdbool.h头文件

C++中的bool可取的值只有truea和false;

理论上bool只占用一个字节,如果多个bool变量定义在一起,可能会各占一个bit,这取决于编译器的实现;

C++编译器会在赋值时将非0值转换为true,0值转换为false;

Tip:

true代表真值,编译器内部用1来表示;

false代表非真值,编译器内部用0来表示;

示例:

exp-1.cpp

#include <stdio.h>

int main(int argc, char *argv[])
{
int a;
bool b = true;

printf("b = %d, sizeof(b) = %ld\n", b, sizeof(b));

b = 3;
a = b;

printf("a = %d, b = %d\n", a, b);

b = -5;
a = b;

printf("a = %d, b = %d\n", a, b);

a = 10;
b = a;

printf("a = %d, b = %d\n", a, b);

b = 0;

printf("b = %d\n", b);

return 0;
}


运行结果:



exp-2.cpp

#include <stdio.h>

int main(int argc, char *argv[])
{
bool b = false;

printf("b = %d\n", b);

b++;

printf("b = %d\n", b);

b = b + 1;

printf("b = %d\n", b);

return 0;
}


运行结果:



2、三目运算符

C语言中的三目运算符返回的是变量值,不能作为左值使用;

C++中的三目运算符可直接返回变量本身,因此可以出现在程序的任何地方;

注意:

  三目运算符可能返回的值中如果有一个是常量值,则不能作为左值使用。

示例:

exp-3.cpp

#include <stdio.h>

int main(int argc, char *argv[])
{
int a = 1;
int b = 2;

(a < b ? a : b) = 3;  //作为左值使用

printf("a = %d, b = %d\n", a, b);

return 0;
}


运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: