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...