?? c和c++語言學習總結(一)_c語言教程_c++教程_c語言培訓_c++教程培訓.txt
字號:
C和C++語言學習總結(一)_C語言教程_C++教程_C語言培訓_C++教程培訓_C/C++頻道_中國IT實驗室 首頁 | 互聯網 | IT動態 | IT培訓
| Cisco | Windows | Linux | Java | .Net | Oracle | 軟件測試 | C/C++ | 嵌入式開發 | 存儲世界 |
服務器
網絡設備 | IDC | 安全 | 求職招聘 | 數字網校 | 網頁設計 | 平面設計 | 技術專題 | 電子書下載 | 教學視頻 | 源碼下載 | 搜索 |
博客 | 論壇 輸入您的搜索字詞 提交搜索表單
首頁資訊動態C語言C++編程C∕C++開發應用VC++C++Builder專題下載博客論壇
您現在的位置: 中國IT實驗室 >> C∕C++頻道 >> C語言 >> 基礎入門 >> 正文 C和C++語言學習總結(一) 10大城市2萬個熱門IT職位
注冊有獎
JAVAV工程師權威認證
廣州中星報MCSE送CCNA3600元 上海英孚教育急聘
系統管理員 初級程序員 軟件開發工程師
數據庫工程師 高級項目經理 界面設計經理 中國IT實驗室收集整理 佚名 2008-12-29 保存本文 推薦給好友 收藏本頁
歡迎進入C/C++編程社區論壇,與200萬技術人員互動交流 >>進入
知識結構:
1、if,for,switch,goto
2、#define,const
3、文件拷貝的代碼,動態生成內存,復合表達式,strcpy,memcpy,sizeof
4、函數參數傳遞,內存分配方式,內存錯誤表現,malloc與new區別
5、類重載、隱藏與覆蓋區別,extern問題,函數參數的缺省值問題,宏代碼與內聯函數區別
6、構造和析構的次序,String函數定義
具體實現: 1、if,for,switch,goto
if:
bool int float pointer char 變量的使用方法
bool bParam;
int iParam;
float fParam;
int* pParam;
char cParam;
if(bParam) ,if(!bParam);
if(iParam == 0 ),if(iParam != 0 );
if(fParam>= -0.00001 && fParam <= 0.00001);
if(pParam == NULL),if(pParam != NULL);
if(cParam == '\0'),if(cParam != '\0');
if/else/return 的使用方法
if(condition) 可以等價為 return (condition?x:y);
{
return x;
}
else
{
return y;
}
for:
執行效率問題:
int row,col,sum;
int a[100][5];
for(row=0;row <100;row++) 效率低于 for(col=0;col <5;col++)
{ {
for(col=0;col <5;col++) for(row=0;row <100;row++)
{ {
sum = sum+a[row][col]; sum = sum+a[row][col];
} }
} }
int i;
for(i=0;i <N;i++) 效率低于 if(condition)
{ {
if(condition) for(i=0;i <N;i++)
DoSomething(); DoSomething();
else }
DoOtherthing(); else
} {
for(i=0;i <N;i++)
DoOtherthing();
}
for (int x=0;x <=N-1;x++) 直觀性差于 for (int x=0;x <N;x++)
switch:
switch(variable)
{
case value1: ...
break;
case value2: ...
break;
default: ...
break;
}
switch(c)中的c的數據類型可以是int,char,long,unsigned int,bool.
variable必須是整數或者強制為整數,由于char實際上是ASCII碼,所以也可以.
c不可以是double,float,char*.
goto:
goto主要用于
{...
{...
{....
goto error;
}
}
}
error:
...
2、#define,const #
define和const區別1、#define C語言const C語言
C++語言const常量有數據類型,編譯器會進行類型安全檢查,而#define沒有數據類型,const的常量可以進行調試,但宏常量不能進行調試。
2、const的使用方法在全局定義 const float PI=3.1415926在類中定義 class A
{...
A(int size);
const int SIZE;
};
A::A(int size):SIZE(size)
{
...
}
對參數和函數的定義(const只能修飾輸入參數,不能修飾輸出參數)
const int x=1; 表示x的值是1,在程序中不能改變;
const int* x; 表示x代表的地址所指向的內容是不能改變得;
int const* x; 與const int* x;的表示的意思一樣;
int * const x; 表示x代表的地址是不能改變的;
當是輸入參數時,不需要是void Func(const int i),void Func(const int& i),可以是void Func(int
i)
因為輸入參數采用"值傳遞"(const int i),由于函數將自動產生臨時變量用于復制該參數,該輸入參數本來就無需保護,所以不要加const修飾;
不用const int& i的原因在于內部數據類型的參數不存在構造、析構的過程,而復制也非常快,"值傳遞"和"引用傳遞"的效率幾乎相當。
當是輸入參數時,不需要是void Func(const A a),void Func(A a),可以是void Func(A& a)或void
Func(const A& a)
不用const A a,A a的原因是函數的效率比較低,因為函數體內將產生A類型的臨時對象用于復制參數a,而臨時對象的構造、復制和析構過程都需要消耗時間
最好用const A&a的原因是A&a中的a可以被改變,A&a和const A&a的好處在于都不會產生臨時對象,效率高;
const A Func(const A&a )const的好處
第一個const表示返回的是個內部產生的對象,它不能被修改
const A Func(……)
{……}
const A a=Func(……);//不能是A a=Func(……);
第二個const表示輸入的參數是引用傳遞,函數內部不會產生臨時對象,而且這個對象不能被內部修改
第三個const表示此函數內部的所涉及的數據成員不能修改 class Stack
{
int m_num;
int GetCount(void) const;
int Pop(void);
}
int Stack::GetCount(void) const
{
m_num++;//編譯錯誤,企圖修改數據成員m_num;
Pop();//編譯錯誤,企圖調用非const函數
}
3、文件拷貝的代碼 #include <stdio.h>
int main(int argc, char* argv[])
{
printf("Hello World!\n");
FILE* in;
FILE* out;
in=fopen("d:\\1.txt","rb");
out=fopen("d:\\2.txt","wb");
char ch=fgetc(in);
while(!feof(in))
{
fputc(ch,out);
ch=fgetc(in);
}
fclose(in);
fclose(out);
return 0;
}
動態生成內存的代碼
------------------------------------------
正確代碼:void GetMemory(char **p, int num)
{ *p = (char *)malloc(sizeof(char) * num);} char* GetMemory2(int num)
{ char* p = (char *)malloc(sizeof(char) * num);return p;}
------------------------------------------
錯誤的代碼:void GetMemory3(char *p, int num)
{ p = (char *)malloc(sizeof(char) * num);}
------------------------------------------
[1] [2] 下一頁
【責編:ben】
相關文章 C/C++中Static的作用詳述
基礎入門:并查集UFSet類
動態內存管理是C++重要的特性
基礎入門:const修飾常量
編寫最有代表意義的qt程序
C編寫Windows服務程序詳細介紹
編寫一個桌面鬧鐘源程序
用C語言實現按鈕新技術
C++中堆和棧的基礎學習
基礎入門:C++中const的使用方法
編輯推薦 · [ASP.NET].NET程序員新方向 Ruby核心語法入門
· [ASP.NET]基于ASP.NET MVC框架開發Web論壇應用程序
· [ASP.NET]利用UrlRewrite,asp.net動態生成htm頁面
· [.NET Framework]DotNet for Symbian平臺
· [ASP.NET]WCF 關于自定義MessageHeader支持
· [ASP.NET]如何定制頁面提示信息(tooltips)
· [ASP.NET]對IOC和DI的理解
· [ASP.NET]主動編程與被動編程!
· [ASP.NET]發布一個鎖定行列的一種方法
· [ASP.NET]使用配置文件構建和使用WCF服務
相關產品和培訓 文章評論 友情推薦鏈接·華碩網絡交換機
·金浪網絡交換機
·聯想交換機報價
·聯想交換機價格
·lenovo交換機
·IDC資訊大全
·機房品質萬里行
·IDC托管必備知識
·網站推廣優化
·全國IDC報價
認證培訓 · Linux進入緊缺人才培訓體系
· 深圳CIW470培訓+考試3000元
· No.1高薪熱門職業【網絡系統集成】
· 全能網管思科微軟黃金組合
· “緊缺人才培養計劃”上海地區啟動
· [上海]交大慧谷CCNP培訓特價3990元
專題推薦
·Java設計模式之實例詳解
·Oracle數據庫11g 面向DBA和開發人員的重要新特性…
·桌面應用軟件編程 J2SE技術詳解…
·我“炫”我精彩-------WPF開發教程
·Oracle數據庫備份與恢復之六大總結
·JAVA的應用編程接口——JAVA API詳解…
·Linux Shell學習技術專題[上]…
·WEB開發——ASP.NET和PHP、JSP究竟學哪個
·五步帶你入門XML
·關于Java框架技術專題
今日更新 · C和C++語言學習總結(一)
· 拷貝構造函數和運算符重載
· 送給正在學習C++朋友的50條建議
· C/C++中Static的作用詳述
· 基礎入門:并查集UFSet類
· C++數值類型轉換方法 心得…
· 自己的不定參數函數的實現方法
· C++圖象的漸顯/漸隱 實現方法…
· 間接修改指針的地址技巧
· 批量html轉text的實現方法
社區討論 博客論點 頻道精選 · 新版CCNA考試大綱 07年8月1日生效
· 新手學習寶典:Linux常用命令全集
· 知已知彼,深入了解系統安全知識
· 從入門到精通 java初學者實踐系列教程
· 共同學習——Oracle入門基礎專題
· ADO.net與PowerBuilder的綜合比較
· 評論:中國互聯網“錢”途何在?
· 中科院:龍芯要成"中國奔騰" 能賣1億顆
C/C++頻道相關導航 C語言:
基礎入門 | 編程技巧 | 實例編程
C++編程:
基礎入門 | 實例編程 |編程技巧
C++開發應用:
多媒體開發 | 游戲開發 | 數據庫開發 | 網絡通信
組件編程 | 系統應用 | 界面開發
資訊動態:
VC++:
C++Builder:
139
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -