1.c++變數的定義可以在語句之後,隨時隨地定義變數,而c語言變數的定義則必須在函式內所有語句的最上方
c++變數可以隨時定義:
#include"stdafx.h"
#include
int main(int argc,char*argv)
c語言定義變數必須在所有語句的最上方
#include
int main(int argc,char*argv)
2.c語言定義結構體變數時必須帶關鍵字,c++則不用
struct student
c++中直接用結構體名 student s1,s2; s1.id=12;
c語言中則要用struct關鍵字才能定義結構體變數 struct student s1,s2;
3.引用型變數:新申請的變數和原來同型別的變數在同乙個位址上,引用型變數必須初始化,掛在乙個現有的同型別變數上,引用變數與源變數任何乙個數值改變則另乙個也變,引用型變數做引數是用來代替源變數
void swap(int *p,int *n)
c語言中交換變數
#include
int main(int argc,char*argv)
c++中使用引用型變數
void swap(int &p,int &n)
#include"stdafx.h"
#include
int main(int argc,char*argv)
ri和rj引用型變數實際也佔記憶體空間,相當於指標變數,乙個指向i,乙個指向j
4.輸入和輸出:c++用#include標頭檔案,還要使用命名空間,using namespace std;c語言使用#include標頭檔案
c語言輸入:scanf("%d %d",&i,&j); 輸出printf("i=%d\n",i)
;c++用count<<"請輸入:";輸出 用cin>>i>>j;輸入
5.同名函式:c語言不支援同名函式,c++支援兩個函式同名,但引數列表不同(個數和型別不完全相同),也就是過載函式,如果函式名和引數列表相同,但返回值型別不同,不能叫過載函式,兩個函式不能共存,過載函式只在於引數列表不同
6.命名空間namespacec語言中不支援namespace
c++支援
namespace mygame
}void init()
在使用時也可像std一樣一次性引用,using namespace mygame;就不用在寫作用域mygame::init()
在外部呼叫 mygame :: init(); ::稱為作用域,這裡是屬於mygame命名空間的init()
預設狀態下 ::init(),是呼叫沒有命名空間的init()
7.new 和delete
c語言中申請空間:
int *p=(int*)malloc(sizeof(int));// 堆內申請單個int變數
int *l=(int*)malloc(sizeof(int)*16);// 堆內申請多個int的陣列
int **p=(int**)malloc(sizeof(int)*16);// 堆內申請指標陣列
c++中申請空間:
int *p=new int;// 堆內申請單個int變數
int *l=new int[12];// 堆內申請陣列
int **p=new int *[12];// 堆內申請指標陣列
申請乙個結構體變數:student *s1=new student;
c語言釋放空間:
free(p);
c++釋放空間:
delete p;// 刪除堆上申請的乙個陣列
delete p;// 刪除堆上申請的單個空間
太極語言出世 比C 更好的語言
太極語言出世 比c 更好的語言 我設計了一種新的計算機語言 太極語言,英文名the universe language。我是2002年秋天開始做太極語言的,我是微波專業衛星通訊方向的,當時我正在編乙個非常複雜的程式,那個程式要自動做微積分自動推導一些電磁場與電磁波方程,用c 編覺的不夠靈活,於是下決...
C 比C的優勢
對於應用系統來說,用c 比用c要好 首先,c能做的c 都能做 其次,c 有很多優秀的庫,比各個公司自己寫的庫穩定,而且新入職員工本身可能就會使用,最重要的是c一直停止不前,而c 還在繼續發展,不斷完善。常用的庫 stl 和 boost庫 regex正規表示式庫 spirit ll parser fr...
數字特徵值(C語言)
題目內容 對數字求特徵值是常用的編碼演算法,奇偶特徵是一種簡單的特徵值。對於乙個整數,從個位開始對每一位數字編號,個位是1號,十位是2號,以此類推。這個整數在第n位上的數字記作x,如果x和n的奇偶性相同,則記下乙個1,否則記下乙個0。按照整數的順序把對應位的表示奇偶性的0和1都記錄下來,就形成了乙個...