C語言學習日記4

2022-09-13 00:27:22 字數 884 閱讀 9807

1、指標型別:在定義指標的時候  資料型別 *指標名  這個地方的資料型別,是指指標指向的變數的資料型別。必須匹配!

在定義的時候可以這麼定義  int *pint;  float *pfloat;  char *pchar;  double *pdouble;

int *p;  理解方法,首先看到p,這個是變數名,其次,p前面有個*,說明這個變數p是個指標變數,最後,*p前面有個int,說明這個指標變數p所指向的是乙個int型的資料。或者可以寫成int* p;理解的時候就可以把int*當成乙個整體,指乙個指向int型的指標。  

2、指標和陣列 

陣列名:做右值時,陣列名表示陣列的首元素首位址,因此可以直接賦值給指標。如果有int a[5]; 則a和&a[0]都表示陣列首元素a[0]的首位址,ps:陣列首元素的首位址和陣列的首位址是不同的。前者是陣列元素的位址,後者是陣列的首位址。含義不同但是數值上是相同的。 

陣列的方式一次訪問:a[0]  a[1]  a[2]  a[3]  a[4]

指標的方式一次訪問:*p  *(p+1)  *(p+2)  *(p+3)  *(p+4)

3、指標++ --運算

指標本身也是一種變數,因此也可以進行運算。但是因為指標變數本身存的是某個其他變數的位址值,所以該值進行*/%等運算無意義。兩個指標變數相加本身也無意義,相減有意義,指標變數+1,-1是有意義的。+1就代表指標所指向的各自向後挪一格,-1代表指標所指向的各自向前挪一格。

*p++可以看作*(p++)等同於 *p;p+=1;

4、函式傳參中使用指標

int add(int a,int b)函式傳參使用了int函式;實參把自己的值複製一遍傳遞給形參,自己本身不參與計算。

int add(int *a,int *b)函式實參傳的是位址,這樣就可以再函式內改變實參變數的值

C語言學習日記(4) 輸出當前時間

怎麼獲得當前時間呢?我們先來看一下c語言程式的基本結構,以hello,world程式 為例 include int main 這個程式只有6行,第一行叫做包含指令,其中的stdio.h叫做標頭檔案,包含指令的格式就像上面一樣。為什麼要寫這一條,可以簡單理解為printf函式是放在stdio.h這個檔...

c語言學習日記(九)

上三角矩陣指主對角線以下的元素都為0的矩陣 主對角線為從矩陣的左上角至右下角的連線。本題要求編寫程式,判斷乙個給定的方陣是否上三角矩陣。輸入格式 輸入第一行給出乙個正整數t,為待測矩陣的個數。接下來給出t個矩陣的資訊 每個矩陣資訊的第一行給出乙個不超過10的正整數n。隨後n行,每行給出n個整數,其間...

C語言學習日記8

4.1.1 程式執行為什麼需要記憶體?4.1.1.1 計算機程式執行的目的。4.1.1.2 計算機程式執行過程 4.1.1.3 馮諾依曼結構和哈佛結構 馮諾依曼結構是 資料和 放在一起。哈佛結構是 資料和 分開存在。什麼是 函式 什麼是資料 全域性變數 區域性變數。4.1.1.4 動態記憶體dram...