當前位置:
首頁 > 知識 > 可以跳過C語言直接學習C加加?

可以跳過C語言直接學習C加加?

可以跳過C語言直接學習C++?

現在有好多人都比較迷茫,學習C++是不是需要先學習C語言?

想要一起學習C++的可以加裙六二六八七一九一六,裙內有各種資料滿足大家,歡迎加裙

其實這個問題不難,就是直接了解兩者的聯繫和區別就可以給出答案。下面我們來看看他倆到底有什麼關係。

1.從名字上看,兩者似乎有很大關係

C++,這個詞在中國的程序員圈子中通常被讀做「C加加」,而西方的程序員通常讀做「C plus plus」,它是一種使用非常廣泛的計算機編程語言。好像是在C的基礎上加了又加好多東西而變成「C加加」的。

1983年,貝爾實驗室的Bjarne Stroustrup在C語言基礎上推出了C++。C++進一步擴充和完善了C語言,是一種面向對象的程序設計語言。

在計算機科學中,C++仍被稱為C語言的上層結構。它最後得名於C語言中的「++」操作符(其對變數的值進行遞增)。而且在共同的命名約定中,使用「+」以表示增強的程序。Stroustrup說:「這個名字象徵著源自於C語言變化的自然演進」。

這樣看來C語言和C++是有血緣關係的。

想要一起學習C++的可以加裙六二六八七一九一六,裙內有各種資料滿足大家,歡迎加裙

2.從實質上看 C語言是C++語言的一個子集。

C++語言包含了C語言的全部詞法和語法的內容,同時它增加了面向對象程序設計語言所必備的內容。 C為面向過程的語言,C++為面向對象的語言。 C++語言源程序中比C語言多一種數據類型-----類,也就是多一種變數-----對象。

想要一起學習C++的可以加裙六二六八七一九一六,裙內有各種資料滿足大家,歡迎加裙

每天來一個C語言經典小程序和C語言編寫的小遊戲,帶注釋和解析

一道題目,玩轉C語言指針數組和指向指針的指針

請先看下面的代碼:

#include

#include

int main(){

char *lines[5] = {

"COSC1283/1284",

"Programming",

"Techniques",

"is",

"great fun"

};

char *str1 = lines[1];

char *str2 = *(lines + 3);

char c1 = *(*(lines + 4) + 6);

char c2 = (*lines + 5)[5];

char c3 = *lines[0] + 2;

printf("str1 = %s
", str1);

printf("str2 = %s
", str2);

printf(" c1 = %c
", c1);

printf(" c2 = %c
", c2);

printf(" c3 = %c
", c3);

return EXIT_SUCCESS;

}

運行結果:

str1 = Programming

str2 = is

c1 = f

c2 = 2

c3 = E

看下面的分析之前,請先了解指針數組和指向指針的指針的基本概念

為了更加直觀,把上面的數組改成下面的形式:

#include

#include

int main(){

char *string0 = "COSC1283/1284";

char *string1 = "Programming";

char *string2 = "Techniques";

char *string3 = "is";

char *string4 = "great fun";

char *lines[5];

lines[0] = string0;

lines[1] = string1;

lines[2] = string2;

lines[3] = string3;

lines[4] = string4;

char *str1 = lines[1];

char *str2 = *(lines + 3);

char c1 = *(*(lines + 4) + 6);

char c2 = (*lines + 5)[5];

char c3 = *lines[0] + 2;

printf("str1 = %s
", str1);

printf("str2 = %s
", str2);

printf(" c1 = %c
", c1);

printf(" c2 = %c
", c2);

printf(" c3 = %c
", c3);

return EXIT_SUCCESS;

}

這樣,或許會清晰很多,char *lines[5]; 定義了一個指針數組,數組的每一個元素都是指向char類型的指針。最後5行,為數組的每一個元素賦值,都是直接賦給指針。

而lines,是一個指向指針的指針,它的類型為 char **,所以 *lines 是一個指向字元的指針,**lines是一個具體的字元。這一點很重要,一定要明白。

指針是可以進行運算的,lines 為lines[5]數組的首地址,即第0個元素的地址;lines+0, lines+1, lines+2 ... 分別是第0, 1, 2 ...個元素的首地址,*(lines+0)或lines[0], *(lines+1)或lines[1], *(lines+2)或lines[2] ... 分別是字元串 str0, str1, str2 ... 的首地址。所以:

*lines == *(lines+0) == lines[0] == str0

*(lines+1) == lines[1] == str1

*(lines+2) == lines[2] == str2

...

注意:lines為指向指針的指針,所以*(lines+n)為指針,**(lines+n)才為具體的字元。

上面的題目中:

lines[1]:它是一個指針,指向字元串string1,即string1的首地址。

*(lines + 3):lines + 3 為lines[5]數組第3個元素的地址,*(lines + 3)為第3個元素,它是一個指針,指向字元串string3。

*(*(lines + 4) + 6):*(lines + 4) + 6 == lines[4] + 6 == string4 + 6,為字元串string4第6個字元的地址,即 f 的地址,*(*(lines + 4) + 6) 就表示字元 f。

(*lines + 5)[5]:*lines + 5 為字元串 string0 第5個字元的地址,即 2 的地址,(*lines + 5)[5]等價於*(*lines + 5 + 5),表示第10個字元,即2。

*lines[0] + 2:*lines[0] 為字元串string0 第0個字元的地址,即C的地址。字元與整數運算,首先轉換為該字元對應的ASCII碼值,然後再運算,所以 *lines[0] + 2 = 67 + 2 = 69。不過要求輸出字元,所以還要轉換成69所對應的字元,即E。

想要一起學習C++的可以加裙六二六八七一九一六,裙內有各種資料滿足大家,歡迎加裙


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 C加加 的精彩文章:

C加加構造函數Constructor
如何避免C語言初學者少走彎路
在哪些領域,C加加相對於其他編程語言有著根本性的優勢?

TAG:C加加 |

您可能感興趣

從C語言實戰談C語言編程,談談C/C加加今後發展!
C語言/C加加編程學習,怎樣判斷某一文件是否存在
C語言C+.+學到什麼程度可以寫遊戲輔助?
C語言/C加加編程學習—代碼訓練之神奇星空動態繼承
掌握英語學習的訣竅,語言學習很EASY
C語言學習必須擁有學習路線,不然你就只會寫貪吃蛇
中軟國際哈爾濱ETC:C語言和C加加 哪個效率更高
C語言C加加編程快速入門系列
語言學習 App 讓你上癮,但又不完全學會外語
要不,咱學學Go語言?
C語言/C加加編程學習—坦克大戰小遊戲製作代碼
ECC語言學校老師到訪芥末留學!見過眾多留學機構的他們,竟也直呼芥末專業水平高!
我們為什麼要學C語言?
為什麼一定要學習C語言?
SKY&MISS採訪——重返WCG帶來的感觸無法用語言形容
SKY&MISS採訪-重返WCG帶來的感觸無法用語言形容
What?韓語竟是學習起來最困難的語言!
當AI自適應遇到語言學習,會顛覆我們學外語的方式嗎?
系統學習大綱——怎樣才能學好C語言?
為什麼說C語言不是低級語言?