目錄流程圖
輸入輸出
運算子資料型別及運算
指標動態分配記憶體
結構體原碼 補碼 反碼
庫函式變數 定義 初始化:為變數賦值,分配記憶體空間
變數作用域
每個變數和函式有兩個屬性:型別和儲存類別。儲存類別分靜態儲存區和動態儲存區
練習流程圖 n-s圖
都不屬於關鍵字,屬於庫函式
浮點型 分母型
需要用float或者double型,常量與浮點型相乘除時候,常量也要加小數點
void 空型別
是指向空型別或者不指向確定的型別的資料,並非是能指向任何型別的資料 p287頁
//如需指向
字元型與整型=整型(通過ascii碼)
運算
int i=1,j=5;
int c=i+(++j); //c為7
c=i+++j //c為6
賦值
int c=i=j; // 先將j的值賦給i,然後i的值賦給c
算數符 關係符 賦值符
a>b==c 等價於 (a>b)==c
5>3 && 8<4-!0
5>3 && 8<(4-!0)
//等價,結果都是0
陣列陣列名只代表陣列的首元素的位址
字元陣列處理
//puts函式
char str=;
puts(str);
//gets函式
char str[10];
get(str);
char str=;
str[11]='d';
puts(str);//結果為sunzhijian,第十位是'\0',puts發現\0後就結束輸出
char str=;
str[10]='d';
str[11]='d';
puts(str);//結果為sunzhijiandd
//二維陣列定義時 第二個下標必須宣告
字元陣列的庫函式操作先include//比較
strcmp(str1,str2)//相同則0,以第乙個不相同的字母比較結果為準,str1》2則返回1,str《str2返回-1
//連線
strcat(str1,str2);//將str2連線到str1上去,且返回str1
//賦值
strcpy(str1,str2);//將str2按下標賦值到str1上去
strncpy(str1,str2,n);//將str2中前n個字元賦值到str1前n位上去
//實際長度
strlen(str);//等價於遍歷到str[i]=='\0';
//字元陣列的大小寫轉換
strlwr(str)//將字串大寫轉小寫
strupr(str)//將字串小寫轉大寫
要區別指標和指標變數,指標就是位址本身,就是乙個具體的位址值,而指標變數是用來存放位址的變數。所以認為指標是型別名是錯誤的,型別是沒有值的,只有變數才有其值。
指標變數的值是所指向變數的記憶體位址,在指標變數上加*代表指標所指向變數。通過※point_a可以對變數a進行操作。
由於資料在記憶體中所佔的位元組數和儲存方式的不同,指標必須指定基型別
指標變數只能賦值記憶體位址,不能直接賦值整型。但可以把指標指向到乙個整型數
*point_a == a;//二者是等價的
point_a == &a;//二者是等價的
陣列指標
指標陣列
int *p[4];//因為優先順序高於*,所有p先與組合,成為乙個包含四個元素的陣列,而int * 宣告陣列中的元素都是int型指標型別的
int (*p)[4];//p宣告為乙個指標變數,指向包含四個整型元素的一維陣列
多維陣列指標
若a是乙個二維陣列,則其性質為
函式指標
指向函式的指標
程式中定義了乙個函式,編譯時,會為其分配一段儲存空間,儲存空間的起始位址稱為函式的指標
int (*p)(int,int);//p是指向函式的指標,且函式引數為兩個整型,返回值為int型
int (*p)(int,int);//定義函式指標
p=max;//指標指向函式,不能將形參給出,否則就是把函式執行後的返回值給p了
(*p)(a,b);//屌用函式
函式型別為指標的函式
函式型別為指標的函式也就是定義乙個返回值為指標的函式
int *p(int,int){}//()優先順序高於*
//p先與()結合成函式,然後*宣告為int指標型別
動態分配記憶體
需要標頭檔案 # include
math
記住經典演算法
判斷素數(1-100內)
反向求解
如果i不能被2~i-1的數整除,則是素數
//判斷素數模組
int isprim(int x){
int i;
//從2開始
for(i=2;i閏年
c語言 知識點
遞迴方法 遞迴相比迴圈時間上快些,但是 遞迴比較占用空間,如果遞迴的次數超過十萬次後會導致資源占用完畢 標準的 優化技巧 消除迴圈 函式迴圈 函式 就地擴充套件 公共子表示式消除 改進暫存器分配 省略執行時對陣列邊界的檢查 迴圈不變數 移動 操作符長度消減 把指數操作符轉變為乘法操作 把乘法操作變為...
c語言知識點
2019 3 4 typedef void voidp 等同於typedef void voidp voidp a a null 即定義了乙個可以指向任何型別的指標 typedef voidpf zallback open file func of voidpf opeaque,const char...
c語言知識點
關於 va args define debug level,format,if level g printlevel else 這裡的 va args 表示可變引數,即上面.傳遞進來的多個引數,是當傳入引數為0時,去掉前面,防止編譯出錯 的另乙個用法如 define xname n x n,那xna...