指針變量
指針變量的定義: 類型名 指針變量名 eg: int q,p;
指針變量的引用: & 變量名(&是取地址運算符) * 變量名(是取值運算符)
指針變量的初始化: 類型說明符 *指針變量名=初始地址值;
指針的運算:指針加一双妨,數(shù)字1不再代表十進制整數(shù)1腊尚,而是一個存儲單元長度薇缅,一個存儲單元長度具體占有多少空間,視指針變量的基本類型而定
main()
{
int x,y;
int *p; //*號只起標記的作用替久,用來說明所定義的變量是指針變量
x=10;
p= &x;
y=*p; //* 用來獲取指針變量所指向變量的內(nèi)容
printf("y=%d\n",y);
}
(1).int *p 是表示指向整形變量的指針變量 (2).p=&x 是表示通過取地址符將變量x的地址賦給指針變量
指針與數(shù)組
指針和一維數(shù)組
c語言規(guī)定牛隅,數(shù)組名代表數(shù)組的首地址攀例。如果需要指針指向數(shù)組嘉汰,直接將數(shù)組名賦予指針變量即可。
int a[6],*pa;
pa=a;等價于pa=&a[0];
用指針訪問數(shù)組元素
main()
{
int a[5],*p,i;
p=a;
for(i=0;i<5;i++)
scanf("%d",a+i);
for(i=0;i<5;i++)
printf("%d",*(a+i));
}
a+i 表示a所指向存儲單元的下一個存儲單元诉濒,即a[0],a[1],a[2],a[3],a[4]
*a等價于a[0] *(a+i)等價于a[a+i] 同樣a等價于&a[0];a+i等價于&a[a+i];
a是指針常量周伦,因此不能使用a++來對a進行移動