指针变量的地址
如果a是一个普通变量,p是一个指针变量:
p=&a;
即为将变量a的地址赋给指针p。
*p=a;
即为将a的值赋给指针p指向的地址的值。
*p=&a;
即为p指向m。
如果a[i]是一个数组,p是一个指针变量:
p=a;//a作为一个数组名是一个地址常量
也可以写成
p=&a[0];
都为指针变量p指向数组a[i]的首地址。
for(p=a;i=0;i<10;i++)
{
scanf("%d",p);//p是输入地址
p++;
}
此语句实现从终端读入数据依次存放到数组。
- 指针变量中数组的引用
定义一个数组a[10],一个指针变量*p;
*(p+0);//也可写作 *p
表示引用数组元素a[0]
由此可知 p+0 是数组元素a[0]的地址;*(p+0)是数组元素a[0]的内存单元,可以引用数组元素a[0]。