C语言中数组名称也作为数组的首地址使用。数组a[10],a+i=&a[i]。
所以可以这样输入数组
scanf("%d",a+i);
指针变量可以自增,可以这样枚举数组中元素。
#include <stdio.h>
int main(){
int a[10]={1,2,3,4,5,6,7,8,9,10};
for(int* p=a;p<a+10;p++){
printf("%d ",*p);
}
return 0;
}
指针的减法
int main(){
int a[10]={1,4,9,16,25,36,49};
int*p =a;
int*q=&a[5];
cout<<p<<endl;
cout<<q<<endl;
cout<<q-p;
return 0;
}
相差20B int是4B 所以相差5个int 所以输出了5.