第2课.C到C++的升级
1
C :C语言中的变量都必须在作用域开始的位置定义
C++:C++中所以变量都可以在需要使用的时候在定义
for(int i=1; i<=3; i++) //这是c++中使用时才定义,C语言必须在开始就定义
{
for(int j=1; j<=3; j++)
{
c += i * j;
}
}
2.register:关键字请求编译器将局部变量存储于寄存器中
C :C语言中无法获取register的变量地址
C++:C++中可以获得register变量的地址,但C++编译器发现程序需要取register变量的地址时,register对变量的声明变得无效。
register int a = 0;
printf("&a = %p\n", &a); // C++中才可以,C语言中不可
3
C :在C语言中,重复定义多个同名全局变量是合法的。
C++:在C++中不允许定义多个同名的全局变量
int g_v;
int g_v; //这里定义了两个g_v,在C语言中编译可以通过
int main(int argc, char *argv[])
4.struct关键字
C :C语言中的struct定义了一组变量的集合;struct定义的标识符不是一个新的类型。
C++:C++中的struct用于定义一个全新的类型
![](https://img2018.cnblogs.com/blog/1557439/201910/1557439-20191028094922688-390972235.jpg)
5
C :C语言中支持默认类型
C++:C++中的标识符都必须显示的声明,C语言中的默认类型在C++中是不合法的。
6.思考
int f()与int f(void)有什么区别?
C :int f()的参数为n个,而int f(void)没有参数
C++:int f()和int f(void无区别