中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

從C語言過渡到C++的基本變化有哪些

發布時間:2021-09-16 09:49:01 來源:億速云 閱讀:155 作者:柒染 欄目:編程語言

從C語言過渡到C++的基本變化有哪些,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

說到C++和C語言的區別,大部分人都會想到面向對象和面向過程。然而這種說法并不準確。面向對象和面向過程指的是兩種不同的程序設計思想,而C++與C是兩種編程語言,難道C++就不能用于面向過程去解決問題嗎,當然可以。

首先,讓我們看一段標準的C++代碼:

  // main.cpp
  #include <iostream>

  using namespace std;

  int main()
  {
    cout << "Hello World!" << endl;

    return 0;
  }

這個是一個最基本的程序,用來在屏幕上打印出“Hello World”這句話。是不是和C語言程序差距較大呢?今天,我們先介紹C++和C語言的幾個最基本的不同。

1. 頭文件

C語言中,標準輸入輸出的頭文件引用方式如下:

#include <stdio.h>
而C++中使用的是:

#include <iostream>
C++規定,由系統提供的頭文件在引用時不帶“.h”。如果是自己定義的頭文件,需要這樣引用:

#include "myfile.h"
注意,這里不僅使用了“.h”而且還用了雙引號。原因和C語言相同,從當前路徑開始尋找。另外,由于C++是完全支持C語言的全部功能的,所以當我們要使用C語言提供的頭文件時,依然要使用:

#include <stdio.h>
這樣定義的好處是,我們只看頭文件的包含形式就知道引用的是C++的系統庫還是C語言的系統庫,亦或是自定義函數庫。

2. 命名空間

大家肯定注意到這句話了:

using namespace std;
這句話的意思是引入命名空間std,我們輸出字符串使用的cout關鍵字就在std中。C++庫中的函數被劃分到不同的命名空間中,如果需要訪問,就要先使用這句話引入命名空間。

假如我們沒有寫這句話,就要在每次使用到這些函數時手動指定命名空間,之前的代碼就要變成這樣:

// main.cpp
#include <iostream>

int main()
{
  std::cout << "Hello World!" << std::endl;

  return 0;
}

這樣寫是合法的,只不過有些麻煩。

3. C++的輸入輸出


C++的輸入輸出做了較大的修改,我們先看下面這個例子:

#include <iostream>

using namespace std;

int main()
{
  int a, b;

  cout << "Please input two numbers : " << endl;

  cin >> a >> b;

  cout << "a = " << a << ", " << "b = " << b << endl;

  return 0;
}

這個程序實現了輸入兩個數字,之后把它們打印在屏幕上。程序的執行結果如下:


cin
相當于scanf,用于把輸入的字符保存在后面的變量中。cin必須和>>一起使用,需要輸入幾個變量就寫幾個變量,之間用>>分隔開。

cout
相當于printf,用于把字符串或變量打印在屏幕上。需要打印的元素要用<<分隔開,endl表示換行。

這兩個關鍵字最大的優勢是不需要關注變量的數據類型,C++會根據變量的定義自動匹配合適的數據類型。

使用這兩個關鍵字時必須包含<iostream>這個庫。

4. 變量的定義

C語言中有個被很多人詬病的規定是變量的定義必須放在代碼塊的首部。這樣就會經常出現變量的定義和第一次使用之間距離很遠,比如下面這段代碼。

int main()
{
  int i, j;

  // Do something

  for (i = 0; i < 100; i++)
  {
    printf("%d\n", i);
  }

  return 0;
}

這段代碼中,變量i的聲明和第一次使用之間可能隔了幾十行的代碼。這樣嚴重影響了代碼的可讀性,也提高了調試的成本。

在C++中,這種情況本根本地解決了。C++允許在任何地方定義變量,只要在使用它之前就行。于是就有了這樣的寫法:

for (int i = 0; i < 100; i++)
{
  // Do something
}

這樣寫是不是變得非常清楚了。在C++中,我們習慣在使用變量時定義,很多只會用C語言的程序員也在使用.cpp文件寫代碼就是為了有這么一個便利條件。

5. 一定要先學C再學C++嗎

雖然我是帶大家先學C語言再學C++的,很多程序員也都是走的這個學習路線。但并不是一定要先學C再學C++。

我總是用這么個例子來解釋這個問題。C和C++就仿佛是手動擋和自動擋的區別,雖然我們大部分人都是先學手動擋再學自動擋,但并不能說不會開手動擋的人就學不會自動擋。自動擋其實還更好學一些。對于駕駛這兩種車而言,它們有很多相同的部分,比如打方向的方法、踩油門和剎車的方法、打轉向燈的方法、轉彎并線等等這些要點都是相同的,只不過你先學哪個就在那里學習這些公共部分而已。

C和C++也是一樣,80%以上的語法點都是相同的,而這些語法點你是通過哪種語言學會的沒有任何區別。

關于從C語言過渡到C++的基本變化有哪些問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临夏市| 沙坪坝区| 兖州市| 肃宁县| 浦东新区| 盱眙县| 嘉定区| 宁波市| 靖宇县| 谢通门县| 始兴县| 建阳市| 饶阳县| 大埔县| 安阳县| 石阡县| 永康市| 义马市| 丹江口市| 青海省| 武功县| 林口县| 博爱县| 祁阳县| 全南县| 商丘市| 内乡县| 宁德市| 青阳县| 铁力市| 北辰区| 紫云| 青川县| 蓬莱市| 抚松县| 应用必备| 阿克苏市| 黑水县| 绥芬河市| 西宁市| 绩溪县|