1.指標的概念
指標是位址//p=&a[0][
0];/p=*a;/p=&a;
運算子:
①&取位址運算子
p=&a:把a的位址賦給指標變數p
int a,*p;
p=&a;
簡化為:
int a,*p=&a;//定義指標變數的同時為指標變數賦初值叫做指標變數的初始化;若無初始化或賦值,指標變數的值是乙個隨機數,隨機指向
②*指標運算子(取指標指向的單元的內容)
printf("%d",*p);
2.分類
格式:資料型別 *指標變數名 eg. int *p
陣列指標(行指標):定義乙個指向一維陣列的指標
格式:資料型別 (*指標變數) [n] //n為指標變數指向的一位陣列元素的個數
a[i][j]:a[i]+j / *(a+i)+j / *(p+i)+j
float (*p)[4];
scanf("%d",*(p+i)+j);
格式:型別識別符號 *陣列名[陣列長度]; eg. int *p[4];//包含了4個元素p[0] p[1] p[2] p[3]
函式指標:指向函式的指標變數
格式:型別識別符號(*指標變數名)()//型別識別符號為函式返回值的型別。
3.指標與陣列
①int a[10] a和&a[0]都表示陣列首位址
↓等價於
int *p=&a[0]; 或int *p=a; //p指向了陣列a的第乙個元素。*p=1的意思是:a[0]=1;
②指標的運算:
加減型※
int a[20],*p;
p=a;
p=p+n //p指向當前元素後的第n個儲存單元
③一維陣列:
例子:int *p,a[5];
p=a; //p指向一維陣列第乙個元素
①下標法:a[i] p[i]
②指標法:*(a+i) *(p+i)
④二維陣列:
例子:int a[3][4],*p;
p=&a[0][0]; //p指向二維陣列的第乙個元素
a[i][j]的3種表達方式:
*(&a[0][0]+4*i+j)
*(p+4*i+j)
p[4*i+j]
4.指標與字串
char *p="lovezczh"
或
char *p;
p="lovezczh";//p指向字串
字元陣列的各元素可以修改,但是字元指標指向的字串常亮不能修改
char str[ ]="lovezczh";
char *p="lovezczh";
修改:char str[1]='i'; //√ 單引號
p[1]='i';// ×
指標知識點總結
用指標作函式引數。返回指標值的指標函式。指標陣列 指向指標的指標。main函式的命令列引數。指標與指標變數的概念 指標與位址運算子。變數 陣列 字串 函式 結構體的指標,以及指向變數 陣列 字串 函式 結構體的指標變數,通過指標引用以上各型別資料。指標與指標變數的概念。1 指標 就是記憶體中的乙個儲...
指標知識點總結
這周主要進行了與指標相關的內容的學習,以下是一些自己整理的關於指標的知識點總結,如果有缺差,歡迎指出。在不同的場合有不同的含義,我們要根據情況合理理解和使用 在定義變數的時候需要用 但是給指標變數賦值的時候不用 可以用來表示乙個變數是指標變數,值得注意的是,同一型別的指標變數只能指向同型別的變數的位...
C 知識點 指標
指標就是給數值分配乙個在記憶體中的空間,然後訪問是不用直接訪問數值,而是訪問那個位址,就可以讀取到那個數值,這樣可以做到不能修改數值。通過指標,可以簡化一些 c 程式設計任務的執行,還有一些任務,如動態記憶體分配,沒有指標是無法執行的。指標的本質是變數,可以是各種資料型別,定義乙個指標 ip 其中 ...