C語言學習筆記
- 文件的結束符:EFO (end of file) 是個整型數 值是 -1。
- 在用putChar()/getChar()輸出/輸入字符串的時候,通常會使用會將臨時存儲變量c聲明爲int類型,就是爲了有足夠的空間存儲EFO所對應的值。
參數–傳值調用
在c語言中,所有函數參數都是“通過值”傳遞的。也就是說,傳遞給被調用函數的參數值存放在臨時變量中,而不是存放在原來的變量中,比如,Fortran等語言是“通過引用調用”,Pascal則採用var參數的方式,在這些語言中,被調用的函數必須訪問原始參數,而不是訪問參數的本地副本。
最主要的區別在於,在c語言中,被調用的參數不能直接修改主調函數中變量的值,而只能修改其私有的臨時副本的值。
外部變量與作用域
外部變量必須定義在所有函數之外,且只能定義一次,定義後編譯程序將爲它分配存儲單元。在每個需要訪問外部變量的函數中,必須聲明相應的外部變量,此時說明其類型。變量聲明時可以用extern語句顯示聲明,也可以通過上下文隱士聲明。
在某些情況下可以省略extern聲明,在源文件中,如果外部變量的定義出現在使用它的函數之前,那麼在那個函數中就沒必要使用extern聲明。在通常的做法中,所有外部變量的定義都放在源文件的開始處,這樣就可以省略extern聲明。
如果程序包含在多個源文件中,而某個變量在file1文件中定義、file2和file3文件中使用,那麼在文件file2與file3中就需要使用extern聲明來建立該變量與其定義之間的聯繫。人們通常把變量和函數extern 聲明放在一個單獨的文件中(習慣上稱之爲頭文件),並在每個源文件的開頭使用#include 語句把所要用到的頭文件包括進來。後綴名.h約定爲頭文件的擴展名。
變量名命名規則
- 選擇變量名的時候要能夠儘量從字面上表達變量的用途,這樣做不容易引起混淆。
- 佈局變量一般使用較短的變量名(尤其是循環控制變量),外部變量使用較長的名字。
- 名字是由字母和數字組成的序列,但其第一個字符必須是字母。
- 下劃線” _”被看做是字母,通常用於命名較長的變量名,以提高可讀性。
- 由於例程的名字通常以下劃線開頭,因此變量不要以下劃線開頭。
- 大寫字母與小寫字母是有區別的。
數據類型及長度
名稱 | 類型 | 長度 | 限定符 |
---|---|---|---|
char | 字符型 | 一個字節 | |
int | 整型 | 通常反應所用機器中整數的最自然長度short爲16位、long爲32位 | short與long (可省略) |
float | 單精度浮點型 | ||
double | 雙精度浮點型 |
typedef 定義別名
dd
struct 結構體
1. 有三種寫法
struct student{
int age;
char name[5];
float score;
}
這是第一種寫法:
使用:
int main(){
struct student student_1; //使用自定義變量student;
return -1;
}
第二種寫法:
struct student{
int age;
char name[5];
float score;
} student_1;
這個一個全局變量
第三種寫法:沒有給結構體起名字
struct{
int age;
char name[5];
float score;
} student_1;
這個全局變量不能再被聲明使用;