第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语言中不可
  2.   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用于定义一个全新的类型
  3.   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无区别

猜你喜欢

转载自www.cnblogs.com/huangdengtao/p/11750601.html
今日推荐