c語言重要知識點複習
1,自加自減運算(單目運算)
說明:(1)運算物件只能是乙個變數
2++; /*error*/
(2)前置是先運算,後引用,而後置是先引用後運算
int i,x;
i = 5;
x = i++; /*x=i;i=i+1*/
i=5;
x = ++i; /*i=i+1;x=i;*/
2,運算的優先順序
(1)第一原則:單目運算的優先順序高於雙目運算
x=*p++ x=*(p++) x=*p,p=p+1
x=*++p x=*(++p) p=p+1,x=*p
第二原則:算術運算->關係運算->邏輯運算->賦值運算
a+b>c&&c!=0 ((a+b>c)&&(c!=0))
(2)優先順序總表
級別運算子
結合順序
1() ->
從左向右
2! - ++ – (type) sizeof * &
從右向左
3* / %
從左向右
4+ -
從左向右
5<< >>
從左向右
6< <= > >=
從左向右
7== !=
從左向右8&
從左向右9^
從左向右10|
從左向右
11&&
從左向右
12||
從左向右
13? :
從右向左
14= op=
從右向左15,
從左向右
3,三種迴圈
(1)while迴圈(當型迴圈)
**格式:
while(條件表示式)
語句;
表示式:值非0,表示滿足條件;值為0,代表不滿足條件
語句(復合語句):重複執行部分(迴圈體)
**流程圖:
**舉例:
//求s=1+2+3+4+...+100
#includevoid main(void)
printf("s=%d\n",s);
}
(2)do-while迴圈(直到型迴圈)
**格式:
do
while(條件表示式);
**流程圖:
**while迴圈與do-while迴圈的區別:
while迴圈先判斷條件,後執行迴圈體;
do-while迴圈先執行迴圈體,後判斷條件
**舉例:
//求30!
#includevoid main(void)
while(i<=30);
printf("301=%f",s);
}
(3),for迴圈
**格式:
for(e1;e2;e3)
statement;
e1:初值表示式
e2:測試表示式
e3:增值表示式
**流程:
**舉例:
//求:s=1+2+3+...+100
#includevoid main(void)
printf("s=%d",s);
}
**注意:在for迴圈中,e1,e2,e3都可以省略。
(4),無限迴圈和空迴圈
**條件為恆真的迴圈-無限迴圈
while(1)
dowhile(1);//靠條件控制的break語句退出迴圈
for( ; ; )
//例:程式等待直到輸入字母a
for(;;)
**迴圈體為空語句的迴圈-空迴圈
for(i=1;i<=max;t++);
//作用:程式延時
4,字串的比較strcmp(str1,str2)
作用:對str1和str2進行逐位無符號字元比較,直到對應位字元能夠確定關係或到串尾為止。返回整型比較結果。
字元的數值關係及是字元的ascii碼值的數值關係。
比較結果
strcmp的值
str1<0
str1==str2
==0str1>str2
>0
char str1=;
char str2=;
int ire1,ire2,ire3;
ire1=strcmp(str1,"abdc");
ire2=strcmp(str1,str2);
ire3=strcmp("abcde",str2);
5,陣列的常用演算法
陣列是同型別資料的集合。
便於整體處理資料,陣列操作的主要演算法有:
(1)求極值;
(2)排序;
(3)查詢;
6,指標
c語言的指標支援:
(1)函式的位址呼叫;
(2)動態分配記憶體;
(3)陣列的位址引用。
#include void main (void )
//int *p; *p=2; /* error!*/
(1)指標必須指向物件後,才能引用。
(2)&和*為互補運算。
7,指標與陣列
陣列是同型別的變數的集合,各元素按下標的特定順序佔據一
段連續的記憶體,各元素的位址也連續,指針對陣列元素非常方便。
(1)指標與一維陣列
通過指標引用陣列元素可以分以下三個步驟:
**說明指標和陣列
int *p,a[10];
**指標指向陣列
p=a; /*指向陣列的首位址*/
p=&a[0]; /*指向陣列的首位址*/
**通過指標引用陣列元素
(2)引用陣列元素
**三種方法:
下標法: a[ i ]
指標法: *(p+i)
陣列名法:*(a+i)
a=p; /*error!*/
8,動態分配函式 ()
sizeof(x):計算變數x的長度
free§:釋放指標p所指變數的儲存空間,即徹底刪除乙個變數
9,引數傳遞
(1)函式呼叫時傳送給形參表的實參必須與形參在型別、個數、順序上保持一致
(2)引數傳遞有兩種方式
**傳值方式(引數為整型、實型、字元型等)
**傳位址
引數為指標變數
引數為陣列名
10,結構體
(1)struct 結構名;
struct book b[10]; //正確
struct book;
struct book b[10]; //錯誤
typedef struct book;
book b[10]; //正確
11,結構指標
方式一:(*p).成員項名
方式二: p->成員項名
typedef struct lnodelnode,*linklist;
// *linklist為lnode型別的指標
lnode *p linklist p
12,總結
(1)從編譯器的角度理解c語言的語法規則和處理資料的方式
•int x,y,*p;(符號表,變數先定義後使用,定義後有記憶體單元)
•語句的語法,如賦值語句:x=a+b;(正確) a+b=x;(錯誤)
•#define n 5; (後面有分號錯誤,因為n會被定義為「5;」)
•函式呼叫通過棧,函式內的區域性變數作用域,函式引數傳遞
•在不同的函式中試圖改變乙個資料,可以通過:
函式return
指標全域性變數
(2)從機器執行的角度理解演算法,將演算法描述逐句變為程式
•依次: 迴圈(for,while),注意迴圈變數的初值和終值
•比較或分情況:分支(if,switch)
•移動:賦值(後移a[i+1]=a[i]; 前移:a[i-1]=a[i];)
•交換:三條賦值
•記錄或儲存變數的值:一條賦值
•對於鍊錶,常用的三條語句如下:
p=l->next; //p指向首元結點
while(p!=null) //p未到表尾
p=p->next; //p指向下乙個結點
另外,指標保留技術:
q=p;p=p->next;
c語言重要知識點1
在c語言語言裡面比較重要的知識點有函式 指標 變數 函式 在函式這乙個知識點裡面需要注意的是 1 函式表示式的正確規範的表達形式 void display int num,char p,a,void link int date 等類似的形式 但是其中最主要的有一點需要記住那就是 函式的形參和返回值一...
C語言重要知識點總結(一)
最近重新看了下c語言,發現先前學習的時候很多的重點都被忽略了,現在回頭看發現了很多以前沒有注意的東西,所以寫部落格記錄下,方便以後可以參考查詢。變數的儲存類別 c語言中變數的儲存類別有auto,register,extern和static。下面將對以下四個儲存類別進行詳細的介紹 auto 自動變數,...
C語言重要知識點回顧
太久沒有看c語言相關知識了,開始要整理回顧一些重點知識點啦,因為各大公司筆試還是有許多c語言相關的題,做個複習。普通指標使用 普通指標使用,我們通過 i 或者 p 指標都能改變變數值 void test1 輸出結果 這個結果是我們好理解的。接著 const int p 問題 const int p ...