黑馬程式設計師 c語言指標

2021-06-21 15:42:40 字數 1799 閱讀 1014

------- 

ios培訓

、android培訓

、期待與您交流! ----------

指標的定義

定義指標和定義乙個變數類似   資料型別 * 指標變數名

如  int * p;表示定義乙個指向整形變數的指標p。

使用如下: int a =8;int * p; p=&a;指標變數 p中存放a的位址,可以通過p中存放的位址,可以訪問變數a中的值。訪問指標變數中存放的位址的值的方式是在指標變數前家上*,如*p=5;就可以將變數a中存放的值改為5;

何時使用指標

#includevoid change(int n)

int main()

void change( int n)

上面這種情況呼叫完畢之後a的值不發生變化,如果想使傳入的值發生變化,則需要傳入變數的位址,並且用乙個指標變數來接收。修改如下

main函式中修改如下

change(&a);
函式中修改如下

void change(int * n)

使用指標時的注意

>1如 double * d=10.8; int * p; p=&d;

這樣使用會使指標訪問不該訪問的記憶體空間,獲得不正確的值,這樣做很危險。

>2 int *p; p=200; 

指標變數只能用來存放位址。

3> int *p; printf("%d",p);

指標變數未經初始化,不要用來間接訪問其他儲存空間。

4> int *p; int a=8; p=&a; *p=&a;

把位址賦給p中儲存的值的對應的儲存空間。

指向指標的指標

int a=10;

int *p=&a;

int ** p=&p;

上面是定義了乙個指向整形指標的指標。可以通過 *(*pp)來訪問變數a中的值

指標的作用2

函式只有乙個返回值,當函式想要有多個返回值的時候可以使用指標變數做引數,來接收變數的值,從而返回多個值。

指標的特別注意  

在64位編譯器下所有的指標都是占用8個字節點額儲存空間。

指向陣列的指標

int a[10]=;

int *p;

int p=a;

陣列名即代表陣列的位址,陣列在記憶體中的存放是依次排列。陣列名和陣列首元素的位址都代表陣列的位址。指標指向陣列名或者首元素的位址,即可訪問陣列中的每乙個元素。

p+1指標的加以相當於直接加上指向型別的位元組數。p指向陣列a,*p是a[0]中存放的值,*(p+1)訪問的是a[1]的值,也可以使用p[0],p[1]訪問陣列的首元素,和第乙個元素。

指標與字串

char * name=「it」可以理解為指標變數name指向"it"字串的首位址字元

輸出字串可以使用printf("%s",name);格式輸出符的作用是輸出字元直到遇到\0才結束輸出。

字串使用的誤區:

#includeint main()

指標變數p指向的是記憶體中的常量區,它是乙個字串常量,對於常量中的字元不可有做修改。

指標與函式

指向函式的指標  int max(int a ,int b)這裡定義了乙個函式,函式名代表函式的位址。 int (*p)(int ,int)=max;

在這裡定義了乙個指向函式的指標,max傳入函式的位址。可以通過指標呼叫函式。如(*p)(5,6);

黑馬程式設計師 C語言 指標

asp.net android ios開發 net培訓 期待與您交流!指標 指標是c語言中非常重要的資料型別 指標變數的定義 int p int是指標指向資料的型別 p是指標變數名稱 只是用來表示變數為指標變數 指標的使用 int a 10 int p p a 或者p a 表示將變數a的記憶體位址賦...

黑馬程式設計師 C語言 指標

一.指標的基本概念 number 10 是什麼意思呢?1.通過number這個位址,找到他指向的空間 2.到這個空間裡,取出裡面儲存的值 普通變數基本格式 變數型別 變數名 指標變數基本格式 變數型別 指標變數名 指標裡面存的是別的變數的位址 p來列印值是0x開頭的,16進製制數字 指標變數在記憶體...

黑馬程式設計師 C語言指標

android培訓 ios培訓 期待與您交流!指標是c語言中非常重要的資料型別,如果你說c語言中除了指標,其他你都學得很好,那你乾脆說沒學過c語言。l void change int n 函式呼叫完畢後,改變實參的值 l 分析 修改實參的值 找到儲存空間 位址l 類名識別符號 指標變數名 l int...