第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
", &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用于定义一个全新的类型

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无区别

原文地址:https://www.cnblogs.com/huangdengtao/p/11750601.html