對C語言的深入探討
引導語:程序執行效率高,可移植性好,對硬件控制能力高,可讀性高。以下是本站小編分享給大家的C語言對C語言的深入探討,歡迎參考學習!
【考點1】編譯預處理
凡以#開頭的這一行,都是編譯預處理命令行,編譯預處理不加分號,不佔運行時間。宏替換僅是簡單的文本替換,如#define f(x) (x)*(x)和#define f(x) x*x替換f(2+2)時就有區別,前者展開為(2+2)*(2+2),後者為2+2*2+2。
如果源文件f2.c中有#include”f1.c”可以理解為把源文件f1.c原樣包含到f2.c中,使f1.c和f2.c融合到一起成為一個C程序編譯。所以一個C程序必有主函數,但一個C源文件未必有主函數。
【考點2】標識符作用域
局部變量是在函數內或複合語句內定義的變量,作用域為定義它的.函數內。局部變量有三種類型:自動auto,寄存器register和靜態static。
自動變量隨着函數的使用與否創建消失;寄存器變量分配在cpu中,沒有內存地址;靜態變量佔用固定存儲單元,在程序執行過程不釋放,直到程序運行結束。
全局變量是在函數外定義的變量,作用域從定義它的位置到整個源文件結束為止,生存期為整個程序運行期間。全局變量都是靜態變量。
【考點3】動態存儲分配
malloc(size)用來創建size個字節的連續存儲空間,返回值類型為void *型。malloc函數常用於動態創建鏈表結點,如int *p; p=(int *)malloc(sizeof(int));。
calloc(n,size)創建n個同一類型的連續存儲空間,可以理解為n個malloc。
int *p; p=(int *) calloc (10,sizeof(int));。p指向首地址。
free(p)釋放動態分配的存儲單元。
【考點4】main函數的參數
還有main(int argc,char **argv) {}
這種含有參數的題目,是很呆板的題目。第一個參數是表示輸入的字符串的數目,第二個參數是指向存放的字符串。
【考點5】函數指針
函數指針的用法(*f)()記住一個例子:
int add(int x, int y)
{....}
main()
{ int (*f)();
f=add;
}
賦值之後:合法的調用形式為
1、add(2,3);
2、f(2,3);
3、(*f)(2,3)
-
C語言的第一個程序
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的`編程語言。下面小編帶大家看看第一個C語言程序。第一個C語言程序實例説明輸出"Hello,world!"是...
-
C語言考試機試經驗三部曲
全國計算機等級考試的持續升温,至使全國計算機等級考試證書已成為國家公務員、國家企事業單位工作人員、公司員工等上崗、加薪、提拔的必備條件。以下是本站小編整理的C語言考試機試經驗三部曲,希望可以為您的考試帶來幫助!第一部:備考篇名將不打無準備之仗,複習備...
-
C語言選擇結構
引導語:選擇結構用於判斷給定的條件,根據判斷的結果判斷某些條件,根據判斷的結果來控制程序的流程。以下是本站小編分享給大家的C語言選擇結構,幫助大家鞏固C語言基礎,歡迎閲讀學習!1.1用if語句實現選擇結構1.在C語言中,if語句有兩種形式:形式1:if(表達式)語句形式2:if(...
-
C語言順序結構知識歸納
C語言的順序結構裏面有哪些知識需要學習的呢,下面小編為大家歸納了C語言順序結構知識,歡迎大家閲讀!C語言順序結構知識歸納一、表達式語句、函數調用語句和空語句1.C語言的語句共分五大類:表達式語句、控制語句、函數調用語句、空語句和複合語句。2.表達式語句的...