最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C到C++的升級關系及區(qū)別實例探究

 更新時間:2024年01月04日 10:03:21   作者:YingLi  
這篇文章主要為大家介紹了C到C++的升級關系及區(qū)別實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

一、C與C++的關系

  • C++繼承了所有的C特性
  • C++在C的基礎上提供了更多的語法和特性
  • C++的設計目標是運行效率與開發(fā)效率的統(tǒng)一
  • c++更強調語言的實用性

所有的變量都可以在需要使用時在定義

int c =0;
for(int i=1;i<=3;i++)
{
    for(int j=1;j<=3;j++)
    {
     c +=i*j
    }
}

對比:C語言中的變量都必須在作用域開始的位置定義!

二、C到C++的升級

register關鍵字請求編譯器將局部變量存儲于寄存器中

在C++中依然支持register關鍵字

C++編譯器有自己的優(yōu)化方式

C語言中無法獲取register變量的地址,C++中可以取得register變量的地址

C++編譯器發(fā)現程序中需要取register變量的地址時,register對變量的聲明無效

在C語言中,重復定義多個同名全局變量是合法的

在C++中,不允許定于多個同名的全局變量

C語言中多個同名的變量最終會被鏈接到全局數據區(qū)的同一個地址上

實例分析

#inlude <stdio.h>
int g_v;
//int g_v
int main(int argc,char*argv[])
{
  printf("Begin...\n");
  int c = 0;
  for (int i=1;i<=3; i++)
  {
     for (int j=1;j<=3; j++)
     {
         c +=i*j;
     }
  }
  printf("c = %d\n",c)
  register int a = 0;
  printf("&a=%p\n",&a);
  printf("End...\n");
  return 0;
}

struct關鍵字的加強

C語言中struct定義了一組變量的集合

C語言中struct定義的標識符并不是一種新的類型

C++中的struct用于定于一個全新的類型

typedef struct _tag_student student;
struct _tag_student
{
    const char *name;
    int age;
}
struct student
{
   const char* name;
   int age;
}

C和C++中結構體的等價定義;

C++中所有的標識符都必須顯示的聲明類型

C語言中的默認類型在C++中是不合法的

在C語言中

int f()表示返回值為int,接受任意參數的函數

f(void)表示返回值為int的無參函數

在C++中

int f()和intf(void)具有相同的意義
表示返回值為int的無參函數

#include <stdio.h>
struct Student
{
    const char* name;
    int age;
};
f(i)
{
    printf("i = %d\n", i);
}
g()
{
    return 5;
}
int main(int argc, char *argv[])
{
    Student s1 = {"Delphi", 30};
    Student s2 = {"Tang", 30};
    f(10); 
    printf("g() = %d\n", g(1,2,3,4,5));   
    return 0;
}

int f()與intf(void)有什么區(qū)別

在C語言中:

int f() :int類型的返回值,形參可接收無數個;
int f(void):int類型的返回值,形參不接收任何形參;

C++語言中:

int f()與int f(void)沒有區(qū)別;

小結

  • C++更強調實用性,可以在任意地方聲明變量
  • C++編譯器能夠更好的優(yōu)化
  • C++ register只是一個兼容的作用
  • C++ 中的任意標識符都必須顯示的指明類型

以上就是C到C++的升級關系及區(qū)別實例探究的詳細內容,更多關于C到C++升級關系區(qū)別的資料請關注腳本之家其它相關文章!

相關文章

  • C++中std::ifstream的使用方法介紹

    C++中std::ifstream的使用方法介紹

    這篇文章主要給大家介紹了關于C++中std::ifstream使用方法的相關資料,std::ifstream 是輸入文件流類,用于從文件中讀取數據,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-06-06
  • C++?OpenCV實現boxfilter方框濾波的方法詳解

    C++?OpenCV實現boxfilter方框濾波的方法詳解

    box?filter的作用很簡單,即對局部區(qū)域求平均,并把值賦給某個點,一般我們賦給區(qū)域中心。本文將用C++實現boxfilter方框濾波,需要的可以了解一下
    2022-10-10
  • C語言進階輸入輸出重定向與fopen函數使用示例詳解

    C語言進階輸入輸出重定向與fopen函數使用示例詳解

    這篇文章主要為大家介紹了C語言進階輸入輸出重定向與fopen函數的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-02-02
  • C語言的結構體你了解嗎

    C語言的結構體你了解嗎

    這篇文章主要為大家詳細介紹了C語言的結構體,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • 常用的C++標準庫頭文件小結

    常用的C++標準庫頭文件小結

    C++標準庫定義了一系列函數、宏和對象,以實現跨團隊、跨平臺的高效且具有卓越性能的標準化 C++ 代碼, 本文介紹常用的C++標準庫頭文件,需要的朋友可以參考下
    2023-11-11
  • C語言實現掃雷游戲(可展開)

    C語言實現掃雷游戲(可展開)

    這篇文章主要為大家詳細介紹了C語言實現掃雷游戲,實現掃雷展開和提醒,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • shared_ptr線程安全性全面分析

    shared_ptr線程安全性全面分析

    正如boost文檔所宣稱的,boost為shared_ptr提供了與內置類型同級別的線程安全性。這包括:1. 同一個shared_ptr對象可以被多線程同時讀取。2. 不同的shared_ptr對象可以被多線程同時修改成
    2013-09-09
  • C++中map 字典的基本使用教程

    C++中map 字典的基本使用教程

    Map是字典一樣的數據結構,它是(鍵,值)對的關聯數組,其中每個唯一鍵僅與單個值相關聯,下面這篇文章主要給大家介紹了關于C++中map 字典的基本使用的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-09-09
  • 詳解C++中存儲類的使用

    詳解C++中存儲類的使用

    存儲類定義?C++?程序中變量/函數的范圍(可見性)和生命周期。這些說明符放置在它們所修飾的類型之前。auto、register、static、extern和mutable是C++程序中常用的存儲類,本文主要介紹了它們的使用方法,需要的可以參考一下
    2022-12-12
  • 詳解C++編程中的輸入輸相關的類和對象

    詳解C++編程中的輸入輸相關的類和對象

    這篇文章主要介紹了詳解C++編程中的輸入輸相關的類和對象,是C++入門學習中的基礎知識,需要的朋友可以參考下
    2015-09-09

最新評論

邵武市| 太保市| 台湾省| 望谟县| 巴林左旗| 额尔古纳市| 阳东县| 神农架林区| 凯里市| 三门县| 上林县| 陆良县| 滨海县| 桦南县| 亳州市| 方城县| 桐梓县| 宜川县| 河津市| 阿荣旗| 舒兰市| 磴口县| 西盟| 漳浦县| 兴隆县| 宣化县| 松桃| 塔河县| 林口县| 印江| 随州市| 长泰县| 九龙城区| 陇西县| 米泉市| 新源县| 雅安市| 阿瓦提县| 宜城市| 林芝县| 札达县|