指针变量
指针变量的定义: 类型名 指针变量名 eg: int q,p;
指针变量的引用: & 变量名(&是取地址运算符) * 变量名(是取值运算符)
指针变量的初始化: 类型说明符 *指针变量名=初始地址值;
指针的运算:指针加一,数字1不再代表十进制整数1,而是一个存储单元长度,一个存储单元长度具体占有多少空间,视指针变量的基本类型而定
main()
{
int x,y;
int *p; //*号只起标记的作用,用来说明所定义的变量是指针变量
x=10;
p= &x;
y=*p; //* 用来获取指针变量所指向变量的内容
printf("y=%d\n",y);
}
(1).int *p 是表示指向整形变量的指针变量 (2).p=&x 是表示通过取地址符将变量x的地址赋给指针变量
指针与数组
指针和一维数组
c语言规定,数组名代表数组的首地址。如果需要指针指向数组,直接将数组名赋予指针变量即可。
int a[6],*pa;
pa=a;等价于pa=&a[0];
用指针访问数组元素
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进行移动