引言:在c語言中,指標的地位是不言而喻的,要想很好的掌握c語言,掌握指標是必須的,這也是c語言不同於其他語言的地方。
(一)指標的指標
例子:
int i;
int *pi;/*把pi初始化為指向變數i,pi = &i*/
int **ppi;/*把ppi初始化為指向變數pi,ppi = &pi*/
初始化指標後,就可以使用它們了。例如i = 'a'; *pi = 'a'; **ppi = 'a';具有相同的效果。
在一條簡單的對i賦值的語句可以完成的任務情況下,為什麼還要使用更為複雜的涉及間接訪問的方法呢?這是因為簡單賦值並不總是可行,例如鍊錶的插入。
(二)高階宣告
int f; /*宣告乙個整型變數*/
int *f; /*乙個指向整型的指標*/
intf();/*把f宣告為乙個函式,它的返回值是乙個整數*/
int *f(); /*f是乙個函式,它的返回值型別是乙個指向整型的指標*/
int (*f)(); /*使f成為乙個函式指標,它所指向的函式返回乙個整型值*/
int *(*f)(); /*f是乙個函式指標,只是所指向的函式的返回值是乙個整型指標*/
int f; /*f是個整型陣列*/
int *f; /*f是陣列,它的元素型別是指向整型的指標*/
int (*f)(); /*括號內的表示式*f首先進行求值,所以f是乙個元素為某種型別的指標的陣列。表示式
末尾的()是函式呼叫操作符,所以f肯定是乙個陣列,陣列元素的型別是函式指標,
它所指向的函式的返回值是乙個整型值*/
int *(*f)(); /*f是乙個指標陣列,指標所指向的型別是返回值為整型指標的函式*/
深入理解C語言 深入理解指標
關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...
深入理解C語言 深入理解指標
關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...
C語言指標深入理解
前幾天看了乙個程式,裡面一段關於指標的 讓我非常糾結,看了很久才看懂,在這裡將將其記錄下來,希望能對大家有一定的幫助,先看示例程式 編譯器gcc include include include typedef struct list node list node,list,plist node st...