C語言指標詳解

2021-08-20 21:36:16 字數 1323 閱讀 8175

類似於 int *p;  char *p 或者自定義型別的  person *p;  struct *p

這些都是基本的指標變數,不管什麼型別的指標變數都是乙個存位址的變數,所以它們的大小都是四個位元組

還有一種void *p 型別,類似於 js 或者 c# 的 var  可以傳入任何型別變數的位址,也可以轉換成任何型別變數的位址,這個在後面會很有用

首先明白:指標和指標指向的內容是兩個不同的東西

常量指標 : const int *p = &a;   是一種指標,指向常量的

指標常量:  int *const p = &a; 是一種常量,指標型別的常量

這張圖顯示的是常量指標,由於是常量的指標,所以肯定不會允許修改常量的值

常量指標意思為 指標指向的位址的變數不可修改,但是可以更改指標的指向

這張圖顯示的是指標常量,可以讀指標的常量

,它是乙個常量,必須在定義的時候賦值,常量是不允許修改值的,所以指標的值不允許改變,但是指標指向的位址的值可以改變

int *p[10]  ;  指標陣列

int (*p)[10] ; 陣列指標

如果你看了上面,一定會有所感悟。。

陣列的指標       ............     指標的陣列   這就很好理解了  

陣列指標是指向陣列的指標

指標陣列是指標的陣列,我前面說過指標也是乙個變數型別,所以拿型別定義陣列天經地義  int *p  

//乙個陣列的指標 指向陣列

int arr[10] = ;

int(*parr)[10] = &arr;

//乙個指標的陣列 , 並給第乙個元素賦值

int *p[10] = ;

int a = 1;

p[0] = &a;

直接上**

int longfunc(int a, char c, long l, bool b)

如果不使用typedef  ,會看起來很複雜

void doother(int(*p)(int, char, long, bool))

c語言指標詳解

一.指標的概念 指標是乙個特殊的變數,它裡面儲存的數值被解釋成為記憶體裡的乙個位址。要搞清乙個指標需要搞清指標的四方面的內容 指標的型別,指標所指向的型別,指標的值或者叫指標所指向的記憶體區,還有指標本身所佔據的記憶體區。1.指標的型別 從語法的角度看,你只要把指標宣告語句裡的指標名字去掉,剩下的部...

C語言指標詳解

c語言指標應用 一 指標是什麼 指標是乙個特殊的變數,它存的是記憶體裡的乙個位址。指標四要素 1.指標的型別 把指標名字去掉,剩下的部分就是這個指標的型別。這是指標本身所具有的型別如下 1 int p 指標的型別是int 2 char p 指標的型別是char 3 int p 指標的型別是int 4...

C語言指標詳解

以下講解是按照如下這個程式的執行順序來講解的 int a,b 這是乙個普通的整型變數 int p 這是乙個整形的指標 a 3 b 4 指標p定義的時候沒有進行初始化,所以在這裡,p的初始值是不確定的。當然也可以在p定義的時候賦初值,這樣p的初始值就是確定的了。p 1 一元運算子 可用於取乙個物件的位...