指標:
指標是乙個 4 bytes integers,儲存的是記憶體位址,
1.定義:
型別 * 變數名:
2.使用const宣告指標變數
1).指向const的指標變數
int const *p; 等效於 const int *p;
該類指標變數指向的記憶體空間的內容是不可變的。
eg. const int a = 1;
const int * p = &a;
a的值是不可以改變的
2).const型指標變數
int * const p;
指向的記憶體空間是固定的,初始化後不能將其指向其他空間,就是說p 不可以再等於其它的位址。
3).指向const的const指標變數
const int * const p;
該指標變數的值和該指標指向的空間的值都是不可以改變的。
3.
int a;
int *p;
p = &a;
這樣是正確的,a的值是無效值,但是系統給它分配了記憶體空間了,位址是有效的。只有系統**的和自己定義的是無效的。
eg:把a和b值進行交換:
通常的方法:進行傳值操作,這樣是不能實現交換
#include #includevoid swap(int,int);
int main()
void swap(int a,int b)
#include #includevoid exchange(int *,int *);//宣告
int main()
void exchange(int *x,int *y)
5.指標型函式值
函式的函式返回值也可以是指標型的資料,即位址。
資料型別 * 函式名(形參列表);
eg:
#include int * max(int * ,int *);//宣告
int main()
int * max(int * a,int *b)else
return p;
}
注意:錯亂時空:
float *mistake()
temp 只有在mistake這個方法塊裡面有效,當存在返回語句的時候,意味著在外界可能會使用也可能不會使用,所以會出現:有時候會出錯誤,有時候不會出錯。。錯亂
6.函式型指標
指向函式的指標,可以表示出函式的位址
有這樣乙個函式宣告:
int add(const int a,const int b);
使用該函式型別來定義乙個函式型指標:
int (*fq)(const int a ,const int b);
就是相當於把存有函式的位址的函式變數func賦給了fq這個
指標:fq = add;
注意:(*fq) 這個小括號千萬不能省略
呼叫的兩種方法:fq(3,3); 或 (*fq)(3,3)
eg:
#includeint add(const int a,const int b)
int main()
7.void型指標
可以指向儲存任意資料型別的空間,也就是它包含了所有的
型別,常作為形參出現,它可以指向任意型別的指標變數;也
可以作為函式的函式值。
定義形式:void * 變數名;
8.指標的呼叫:(一二**指標的使用)
#include #includeint main()
菜鳥之C語言初涉 初學程式設計之總結系列
你生而有翼,為何竟願一生匍匐前進,形如蟲蟻?每年都會有很多的少男少女從高考的煉獄解放出來,但迎面而來的不是快樂,不是重擔卸下的松一口氣,而是無盡的狂歡狂歡遮蓋的迷茫。三年的努力,只是換來兩個月的時間決定了自己接下來人生的方向,無力不能幫你解決,絕望殺不死希望。所以為什麼不來程式設計呢?好吧,瞎扯了這...
C學習之語言初涉 1 指標篇
指標的概念 在計算機儲存中,所有的資料都儲存在儲存器中,所謂的1位元組也被稱作乙個記憶體單元.不同的資料型別在儲存器中所占用的記憶體單元是不同的.整形變數 如 int佔2個單元 字元變數 如 char佔1個單元 為了準確的訪問到每個記憶體單元,獲取記憶體單元中儲存內容,計算機將每個記憶體單元都分配了...
C 語言開發初涉 01 簡單學習
嘗試用c語言寫windows程式 簡單的計算器 1.0版,僅用來熟悉c 開發windows的一些語法和語句用法 1 include stdafx.h 2 include 3 include 4 include 5 include 6 include 7 include resource.h 8 in...