指標,指標,指標。。。

2021-06-25 08:32:27 字數 1068 閱讀 5485

1、指標常量與常量指標

int a = 10;

int * const p1 = &a;

const int * p2 = &a;

p1是不可改變位址的常量,即指標常量,但可以對它所指向的內容進行修改。

p2是指向常量的指標,即常量指標,它所指向的位址內容是不可修改的,但其本身確實可以修改的。

2、指標運算

#includeint main()

執行結果:ivalue=6  cvalue=24

指標進行運算時,它的值與其型別有關。兩個位址同樣相差24個位元組,以整形指標相減結果為 24/4=6;以字元指標相減結果為 24/1=24;

3、指標與陣列

#includeint main()

,,},

,,}}; printf("%d\t%d\n",**(a[0]+2),sizeof(a));

return 0;

}

輸出結果:121

96 分析:對於一位陣列a,*a等價於a[0],*(a+2)等價於a[2]。同理對於多維陣列*a[0]等價於a[0][0],*(a[0]+2)等價於a[0][2],**(a[0]+2)等價於*a[0][2]等價於a[0][2][0]。

sizeof(a)計算陣列a所佔記憶體空間:(2*3*4)*4byte=96byte。

4、指標陣列 與 陣列指標

int *p[n],p代表乙個可存放n個整型指標型別元素的一維陣列,p是指標陣列,本質是陣列,是常量。

int (*p)[n],p代表乙個指向由n個整型資料組成的一維陣列的指標,p是陣列指標,本質是指標,是變數。

5、指標函式 與 函式指標

int * f(int x),f代表乙個返回值為整型指標的函式,f是指標函式,本質是函式。

int (*f)(int x),f代表乙個指向函式的指標,該函式的引數和返回值均為整型,f是函式指標,本質是指標。

指標,指標,指標。。。

1 指標常量與常量指標 int a 10 int const p1 a const int p2 a p1是不可改變位址的常量,即指標常量,但能夠對它所指向的內容進行改動。p2是指向常量的指標,即常量指標,它所指向的位址內容是不可改動的,但其本身確實能夠改動的。2 指標運算 includeint m...

指標,指標,又見指標

在xcode中寫了一段下面的 nsstring s1 hi,i am sean nsstring s2 hi,i am sean nsstring s3 nsstring stringwithformat hi,i am sean s3 s1 if s1 s2 在debug模式看了一下,發現s1和s...

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

程式中一般通過變數名對變數進行訪問操作,其實質是通過位址進行的。對變數的訪問分為直接訪問和間接訪問,如語句 printf d i 執行的時候,根據變數名 與位址的對應關係,找到i的位址,依次取相應的位元組數中的資料 即i的值 把它輸出。這種按照變數位址訪問變數值的方式成為直接訪問 還可以將變數i的位...