基本概念:
1)「*運算元」稱為間接訪問表示式,它的操作語義是引用以運算元為位址的變數。運算元可以是表示式,但其值必須是位址值。所以間訪表示式的值是乙個左值,代表指標所指的變數。而指標所指的型別就是間訪表示式運算的型別。
例:int y,x[3]=,*pi=x;
y=*pi++;是先對pi進行++操作,然後計算px,即對px進行間訪操作,由於沒有到達序列點,*pi還是x[0].再對y進行賦值,使y值為1.由於語句結束是序列點,這時才對pi進行自增操作,使pi指向x[1]。
陣列指標表示:
一維陣列中元素及元素位址表示
表示方式
元素元素位址
用素組下標表示
a[i]
&a[i]
用指標p的下標表示
p[i]
&p[i]
用陣列名的指標表示
*(a+i)
(a+i)
用指標p的指標表示
*(p+i)
(p+i)
用陣列名構成的位址表示式和下標表示
(a+i)[0]
(a+i)
用指標構成的位址表示式和下標表示
(p+i)[0]
(p+i)
原來陣列還可以這麼輸入,我還以為scanf(「%d」,p[i])錯了呢。
#include "stdio.h"
#define n 6
int main(void)
for(i=0;iprintf("p[%d]=%p,result=%d\n",i,p[i],*p[i]);
}printf("sum=%d\n",sum);
getchar();
getchar();
return 0;
}二維陣列與指標陣列:
#include int main(void)
} for(i=0;i<5;i++)
getchar();
return 0;
}
《C語言程式設計》指標篇《二》
如何理解二維陣列元素的位址?要知道,這本書用了整整兩頁的內容來講解這方面的知識,從這裡足以看出來理解通過指標來引用二維陣列是一件比較麻煩的事情,但是我認為理解並不難。一.陣列名a和 a i 二.a i是什麼?1.a i與 a i 實際上是 a i 0 等價。2.a i 與a i 等價 二者都是位址 ...
c程式語言筆記1
列印最長輸入行的程式 include define maxline 1000 允許的輸入行的最大長度 int getline char line,int maxline void copy char to,char from 列印最長的輸入行 main if max 0 printf s longe...
C語言指標筆記總結1
二.指標和陣列的關係 三.指標和函式的關係1 指標變數佔的位元組數 四.多級指標 五.指標和函式的關係2 指標 位址 記憶體單元的編號。指標就是位址,就是乙個記憶體單元的編號。指標變數是存放位址的變數。指標和指標變數不同,指標就是乙個值,但是通常會把指標變數叫做指標。基本型別指標 int float...