亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

從C語言過渡到C++之基本變化

2020-01-26 13:59:29
字體:
來源:轉載
供稿:網友

說到C++和C語言的區別,大部分人都會想到面向對象和面向過程。然而這種說法并不準確。面向對象和面向過程指的是兩種不同的程序設計思想,而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++,因為C更關注細節,能夠幫助學生更清晰地了解程序和硬件的一些關系,人們認為只要這么學才能打下好的基礎。但隨著計算機編程技術的不斷發展,如今更流行的觀點是編程就是為了幫助我們更好地使用計算機解決問題,以這個目的為導向,那些沒必要知道的東西可以不去在意。于是越來越多的人用C++、Java、甚至Python這樣遠離硬件的語言進行編程入門。這些人依然可以設計出自己想要的程序。

所以,請大家不要再糾結先學誰后學誰的問題了,可能不久后,我就會推出從零開始學習C++這樣的系列了。

敬請期待~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
麻豆精品精华液| 日韩69视频在线观看| 国产91成人在在线播放| 亚洲精品福利资源站| 国产成人综合久久| 欧美日本在线视频中文字字幕| 日韩欧美一区视频| 欧美高跟鞋交xxxxhd| 精品视频久久久久久久| 久久久精品免费视频| 亚洲国产成人av在线| 激情久久av一区av二区av三区| 成人免费观看a| 欧美日本高清视频| 精品久久久久久久久久久久久久| 亚洲自拍偷拍一区| 91理论片午午论夜理片久久| 欧美一级大片在线免费观看| 国产在线播放91| 性色av香蕉一区二区| 国产aⅴ夜夜欢一区二区三区| 国产精品免费久久久久影院| 在线电影中文日韩| 美女av一区二区三区| 欧美另类99xxxxx| 亚洲第一色中文字幕| 精品国产欧美一区二区三区成人| 午夜精品久久久久久久久久久久久| 国产中文字幕亚洲| 欧美专区在线播放| 亚洲视频在线播放| 国产精品ⅴa在线观看h| 日韩**中文字幕毛片| 久久久精品久久久久| 国产97人人超碰caoprom| 久久精品91久久香蕉加勒比| 日韩欧美中文字幕在线播放| 欧美交受高潮1| 欧美激情视频给我| 欧洲成人午夜免费大片| 成人高h视频在线| 韩曰欧美视频免费观看| www亚洲欧美| 亚洲人成在线免费观看| 欧美日韩激情网| 欧美在线一级va免费观看| 亚洲色图美腿丝袜| 亚洲精品国产精品国产自| 亚洲性夜色噜噜噜7777| 亚洲人成在线播放| 国产成人精品日本亚洲专区61| 亚洲精品美女在线观看| 亚洲第一网站男人都懂| 亚洲精美色品网站| 中文字幕精品www乱入免费视频| 亚洲精品国产福利| 欧美有码在线观看视频| 自拍视频国产精品| 97免费视频在线| 日韩精品在线观| 一本色道久久88亚洲综合88| 欧美成人黑人xx视频免费观看| 97在线视频一区| 欧美日韩综合视频| 91精品国产乱码久久久久久蜜臀| 精品久久久久久久中文字幕| 亚洲欧洲日本专区| 一本一本久久a久久精品牛牛影视| 精品性高朝久久久久久久| 久久青草福利网站| 伊人久久综合97精品| 国产精品高清免费在线观看| 最近免费中文字幕视频2019| 精品亚洲精品福利线在观看| 亚洲国产成人久久综合| 日韩性生活视频| 国产精品天天狠天天看| 91爱爱小视频k| 亚洲精品资源在线| 欧美激情精品久久久| 欧美日韩亚洲激情| 最近2019年中文视频免费在线观看| 成人免费看黄网站| 国产丝袜一区二区| 欧美大片免费观看在线观看网站推荐| 亚洲春色另类小说| 精品久久久在线观看| 欧美成人手机在线| 久久艹在线视频| 久久全球大尺度高清视频| 日本久久久久久久| 欧美精品一区二区三区国产精品| 欧美一级成年大片在线观看| 91高清视频在线免费观看| 国产丝袜一区视频在线观看| 国产免费久久av| 国产精品自产拍在线观看| 秋霞成人午夜鲁丝一区二区三区| 一区二区欧美激情| 国产精品国模在线| 欧美性xxxxx极品| 欧美最猛性xxxxx免费| 亚洲第一av网| 国产婷婷97碰碰久久人人蜜臀| 国产成人涩涩涩视频在线观看| 日韩欧美极品在线观看| 欧美性资源免费| 国产自摸综合网| 欧美成人全部免费| 国产精品自产拍在线观| 日韩**中文字幕毛片| 国产成人精品在线播放| 福利视频导航一区| 欧美视频二区36p| 午夜精品免费视频| 成人性教育视频在线观看| 川上优av一区二区线观看| 久久九九有精品国产23| 亚洲欧美日韩高清| 91九色综合久久| 日韩av影院在线观看| 国产精品wwwwww| 亚洲欧美日韩视频一区| 另类色图亚洲色图| 欧美床上激情在线观看| 国产不卡av在线免费观看| 久久久久久久久久久国产| 国产一区二区丝袜高跟鞋图片| 国产亚洲精品va在线观看| 欧美黑人一区二区三区| 欧美亚洲另类制服自拍| 日韩精品极品毛片系列视频| 91av在线播放视频| 国产精品免费久久久久影院| 国产精品久久久久久久久久久久久| 伊人青青综合网站| 欧美丝袜一区二区三区| 欧美夫妻性视频| 亚洲精品av在线| 久久91亚洲精品中文字幕奶水| 亚洲成人精品av| 日韩精品中文字幕在线播放| 91免费观看网站| 精品视频一区在线视频| 欧美丰满老妇厨房牲生活| 人人做人人澡人人爽欧美| 综合激情国产一区| 国产91色在线播放| 91免费国产网站| 欧美日韩国产在线| 久久精品视频网站| 亚洲大胆人体av| 成人午夜激情免费视频| 国产一区欧美二区三区| 亚洲淫片在线视频| 久久99精品视频一区97| 欧美老肥婆性猛交视频| 国产小视频国产精品| 富二代精品短视频| 在线不卡国产精品| 中文字幕国产亚洲| 亚洲激情 国产| 欧美电影免费看| 亚洲天堂第二页|