<創建函數>
函數原型:
eg. int func(in,float,long Z); //long Z will be warned !
int func( ) //無參數而不是任意參數
float func (...)//可變參數列表,避免(?)
返回值:
1、每個函數都有返回值,空返回值爲void
2、return的結果視返回值而定:
考慮:
int func(){
return 1;
}
//----------------------------------
char func(){
return 1;
}
3、void不能使用return
int func(){
return 1;
}
//----------------------------------
char func(){
return 1;
}
3、void不能使用return
函數庫:
使用方法:包含頭文件
<執行控制語句>: 我最先接觸的部分:)
//...略...//
注意:
1、可以隨時定義變量;
2、goto:
goto跳出多重循環,可讀性高;
當然把循環寫成函數再return也行,每層循環加條件也行;
遞歸:等寫算法筆記時再寫
<運算符簡介>:
運算符優先級:查表吧!
自增自減:
1、效率
++i //無臨時變量
i++ //臨時變量
2、運算順序
consider:
i=1;
y=i++ //y=1,i=2
or y=++i //y=2,i=2
請參考:http://community.csdn.net/Expert/topic/3688/3688400.xml?temp=.260235
數據類型:內部類型、抽象類型(自定義的類)
基本內部類型:只規定存儲臨界值,二進制及其轉換爲數位;6e-4
bool:隱式轉換??
說明符:specifier
long / short 值上下限 float 4 double 8 long double 10
修飾int可以不寫int: long a 就是 long int a
signed / unsigned 是否使用符號位
由此可見,long short不可以修飾char,因爲char只有一位,而signed unsigned不可以修飾浮點類型因爲浮點類型總含有一個符號。
指針:終於到你了! :)
* 和誰更親密?
定義一個變量ptr來存儲地址,怎麼做到?
int* ptr=&a
我們實際上想要得是ptr=&a,但是沒有一個基本內部類型可以讀取&a這樣的數據,所以插入一個*來表示指針,那麼*和誰結合更密切呢?
考慮兩種說法:
1、int* ptr //與類型更密切
2、int *ptr//與變量更密切
但是他們都有自己的難處:
1、int a,b,c可行,按照這種邏輯int* a,b,c也是可行的,但實際上我們不得不寫成
int* a;
int* b;
int * c;
2、 int *ptr=&a 這又好像在說 *ptr=&a,而這並不是我們所要的
Eckel給我們了一個新答案:*是插入的,和前後沒有親疏關係,只是一個標誌告訴編譯器:“ 等一等,它是一個指針。”
用途:修改外部對象;一些編程技巧
修改外部對象:
爲什麼可以修改?我們可以先看看定義並初始化一個變量時發生的事情,這樣有助於理解值傳 遞和地址傳遞 。要記住三個名詞:名稱(訪問標識),值,內存地址。值儲存在內存地址中,而名稱只是訪問該地址從而獲得值的訪問標識,可以認爲值和內存地址結合更緊密,是一一對應的,而訪問標識則可以有多個,我們看個例子:
e.g : int a=23; //第一個標識a 以及唯一值23
假設&a=4198736 //唯一地址,已經轉換爲long型
int* ptr=&a; //第二個標識*ptr
爲什麼第二個標識不是ptr呢?因爲ptr的值是內存地址,把ptr做*運算就可以得到訪問內
存4198736的第二個標識了,它相當於第一個標識a。所以從功能上講,
*ptr與a一樣 //兩個訪問標識
ptr與&a一樣 //這裏複雜一些,ptr實際上是一個新的名稱,它對應另一個的值
//、內存地址。看完下面程序就明白了:
void main(){
int a;
int*ptrA=&a;
cout<<(long)ptrA<<endl;
cout<<(long)&ptrA<<endl;
}
引用簡介
“(引用)基本思想和前面所述的指針的使用是一樣的:我們可以用引用傳遞參數地址。引用和指針的不同之處在於,帶引用的函數調用比帶指針的函數調用在語法構成上更清晰(在某種情況下,使用引用實質上的確只是語法上否成的不同)”說白了
int&a=b;
就是爲建立了別名a,而&則表示“等一等,它是一個引用”,還是用名稱,值,地址關係來看,我們可以這樣看:
int b=1;
int&a=b;
名稱:b,a 值:1 地址:&a或&b(&a=&b,這是b是a的別名的最好證據)
用引用在語法上更清晰,更符合人的思維。
更多細節,請參看:
http://dev.csdn.net/develop/article/62/62577.shtm C++ FAQ閱讀筆記[2]--引用
選擇自 oury 的 Blog
http://dev.csdn.net/develop/article/57/57367.shtm C++基本功:從一個左右值問題出發,侃侃C++的引用
選擇自 shooow 的 Blog
int func(){
return 1;
}
//----------------------------------
char func(){
return 1;
}
3、void不能使用return