C語言和C++的不同之處和相同之處
有適當修改,感謝。
一、應用場合
C語言:C語言是結構化和模組化的語言,是面向過程的。當程式的規模較小時,C語言運用起來得心應手。但是當問題比較複雜、程式的規模比較大的時候,C語言就會展現出它的侷限性。
C++:正是因為有大規模的程式需要去處理,C++就應運而生了。C++是由C發展而來的,與C語言相容。C++既可用於面向過程的結構化程式設計,也可用於面向物件的程式設計,是一種功能強大的混合型的程式設計語言。
與此看來,它們兩者並兩個孤立的個體,有著密切的連線關係。C++可以看做是C的超集,其實任何語言之間都沒有明顯的界限,C語言是基礎,在此基礎上所開發出來的所有語言都是在不同的場合發揮著它們獨特的作用以及展示它們各自的優越性。
二、語法的不同之處
1、標頭檔案
C語言:#include //標準輸入、標準輸出
**C語言中所有的標頭檔案都帶字尾 .h(比如stdio.h)
C++:#include//輸入輸出流所包含的標頭檔案
using namespace std; //C++標準庫中的類和函式是在名稱空間std中宣告的。
**C++中有系統提供的標頭檔案不帶字尾 .h,使用者自己編制的標頭檔案可以有後綴 .h。
2、輸入/輸出函式
C語言:用一個例子說明一下:
int a=1;
double d=3.1415926;
printf("%d\n",a);
printf("a=%d\n",a);
printf("b=%6.3f, b=%6.2f, b=%.3f\n",b,b,b);
scanf("%d",&a);//取地址,輸入a的值
%d和%f稱為格式說明符,表示以此格式輸出對應表示式的值,\n表示換行。%6.3f 中的6表示佔六列,.3 表示輸出對應浮點表示式值時只輸出三位小數。
C++:也是用一個例子說明:
int a=5;
float b;
cout << "a="<<a<<endl;
cin >>b;
cout必須要和”<<“一起使用,cin必須要和”>>“一起使用。我覺得C++中的輸入輸出流是很強大的,它不像C裡面還要指定格式。endl表示換行。
3、字串
另外一個我覺得C++裡面另外一個特別好用的用來存放字串的就是string,它是在C++標準庫中宣告的一個字串類。
C語言:char a[20]="hangzhou";
char *p="hangzhou";
可以用上面兩種方式 ,一種是用陣列的方式儲存字串,另外一種是用字串指標。這兩種方法都有一個麻煩的地方就是,字串的連線、比較啊等等都需要呼叫函式執行,比如strcmp函式、strcat函式、strcpy函式。
strcmp:字串比較
strcat:字串連線
strcpy:字串複製
C++: string s1="abcd";
string s2="hello world";
string s3=s1+s2;
s1=s2;
字串連線:s1+s2
字串拷貝:s1=s2
字串比較:s1==s2 s1!=s2
由此看來是不是方便了許多?
4、結構體和類
C語言:結構體
struct Student //聲明瞭一個名為Student的結構體型別
{ int num;
char name[20];
char sex;
} ;
Student stud1,stud2; //定義了兩個結構體變數 ,預設情況下為public型別。
C++:類
class Student
{ private:
int num;
char name[20];
char sex;
public:
void display()
{ cout<<"num="<<num<<endl;
cout<<"name="<<name<<endl;
cout<<"sex="<<sex<<endl; }
};
Student stud1,stud2;//定義了兩個Student類的物件
C++中的類將資料和操作封裝在一起,並且指定了訪問許可權。如果不指定public,也不指定private,則系統就預設為私有的,這一點和C語言中的結構體是不一樣的。因為類的出現,那麼繼承和派生、多型性等問題也就接踵而至了。
三、總結
C語言和C++的不同,除了表現在使用的場合不同,還有更多的是表現在語法的不同,但是基本的思想是一致的。還是那句話,C語言更加註重的是過程,C++除了保留C語言的優點,還增加了面向物件的機制。其中的細節有很多,在這裡就不一一列舉了,只是一個大致的方向。