- c++更强调语言的实用性
- 所有变量都可以在需要使用时再定义
- 对比c语言中的变量都必须在作用域开始的位置定义
- register关键字请求编译器将局部变量存储于寄存器中
- c语言中无法获取register变量的地址
- c++中可以获取register变量的地址,C++编译器发现程序中需要取register变量的地址时,register对变量的声明变得无效
- c语言,重复定义多个同名的全局变量是合法的
- c语言中多个同名的全局变量最终会被链接到全局数据区的同一个地址空间上
-
struct关键字的加强,c语言中的struct定义了一组变量的集合,struct定义的标识符并不是一种新的类型,c++中的struct用于定义一个全新的类型
-
int f() 和 int f(void)有区别吗?如果有区别是什么?
c++的所有标识符都必须显示的声明类型
c语言中的默认类型在c++中是不合法的
f(i)
{
printf("i = %d\n", i);
}
g()
{
return 5;
}
函数f的返回值和参数分别是什么类型?函数g可以接受多少个参数?
在c语言中
int f() 表示返回值为int,接受任意参数的函数
f(void)表示返回值为int的无参函数
在c++中
int f() 和 f(void) 具有相同的意义
- 表示返回值为int的无参函数
11.c++中bool类型 基本数据类型
12.三目运算符
c语言中的三目运算符返回的是变量值
-不能作为左值使用
c++中的三目运算符可直接返回变量本身
-即可作为右值使用,又可作为左值使用
注意:
三目运算符可能返回的值中如果有一个常量值,则不能作为左值使用。