記憶體單元的值:記憶體單元中存放的內容
通過位址可以找到記憶體單元格,然後再取出內容
3、對變數進行資料訪問有幾種方式
兩種:直接訪問 int a=10; a=a+10;
間接訪問 通過指標
二: 1、指標變數
就是用來存放(指標)位址的變數
指標變數使用流程:先定義 ---> 初始化 -->使用
2、指標變數定義
格式:資料型別 *指標變數名;
指標變數名 嚴格遵守識別符號命名規範
int a;
char c;
double d1;
注意:1)指標變數只能存放位址
2)int *p中,"*"表示定義乙個指標變數
3)指標變數也有作用域(全域性的、靜態、區域性)static修飾區域性變數區域性變數的生命週期延長
4)定義指標變數指向的話,要注意指標的型別,因為當使用指標操作指標指向記憶體單元內容時,會按照指標的型別到記憶體中定址,因此可能會出現問題。
3、指標變數的初始化
把誰的位址給指標變數,就可以理解為,這個指標變數指向這個變數
1)定義的同時初始化
「&」 用此符號可以取得乙個變數的位址
int a;
char c;
double d1;
int *p1=&a; //&a 獲取的變數a的位址 scanf("%d",&a);
char *c1=&c;
double *dp=&d1;
int *p2 = &c;(錯誤的,p2只能存放乙個int型資料的位址)
int *p3 = 100;(錯誤的,p3用來存放位址的,不能存放整型的數
2)先定義,後初始化
1)變變數的位址進行初始化
int *p3;
p3 = &a; //給p3指標進行初始化
2)用指標變數,初始化另外乙個指標
int *p4=&a;
int *p5;
p5 = p4; //p4存放的時乙個位址,可以直接賦值給p5
3)指標變數可以初始化為null
null 空 (不是0 「 」 『 』)
int *p2 = null
用0賦值為空
int *p3=0;
錯誤:int *p6=&a;
char *c2=&c;
int *p7 = c2; 錯誤的,因為p7只能存放int型資料的位址 c2是乙個char型變數的位址
三:指標變數的引用:
& 獲得乙個變數的位址
* 兩種用法
1)在定義指標變數的時候,表示定義的時乙個指標變數
2)*指標變數名 表示取得指標變數中存放的那個位址對應的儲存單元的值
int a = 9; int *p1 = &a;
*p1 9, //獲取a的位址,對應的值
四:指標使用場景:
指標的使用場景1:
在被調函式中,訪問主調函式中的變數
例如:void change(int *p);
//定義乙個指標陣列名為pa 有三個元素,a[0],a[1],a[2]三個位址
int *pa[3]=;
*(pa+1)
C語言 指標1
指標恐怕是c語言中最不容易掌握的乙個概念了,但指標又是如此的重要,可以說不會指標,c語言就等於沒學。指標到底是乙個什麼東西呢?include int main char pch null char pstr hello pointer short pshort null int pint null ...
C語言指標1
陣列與指標 陣列的名字是第一元素的位址。include int main printf str 0 的位址是 p n str 0 輸出 str 0 的位址是 000000000062fdc0陣列相鄰每一元素之間相差值 資料型別的寬度 include int main float b 3 double...
C語言指標1
1 取位址符 2 雙目運算子 例如a b 按位於 指標 位址 int p 定義整型指標變數 double p1 定義浮點型指標變數 int a 10 整型變數存放整型值 double b 23.3 浮點型變數存放浮點數 int p a 整型指標變數存放整型位址 指標 p 為間接訪問符,也稱為解引用 ...