数组的指针即整个数组在内存中的起始地址,而数组元素的指针是数组中某一元素所占存储单元的地址。 利用指针法引用数组元素能使目标程序质量高、占内存少、运行速度快。 C++语言中规定:数组名就代表数组首地址,也就是数组第0号元素的地址。如 int a[10]; int *p; p=&a[0];/*与p=a,是等价的*/
p+i或a+i就是a[i]元素的存储地址,即它们都指向数组的第i号元素a[i]。所以*(p+i)或*(a+i)就与a[i]是等价的。实际上,在编译时,编译程序把a[i]处理成*(a+i)。因此利用此方法就可访问到数组元素。如: main() { int a[10]; int *p, i; for(i=0;i<10;i++) cin>>a[i]; p=a; for(i=0;i<10;i++) cout<<*(p+1);//等价于cout<<a[i]; }
数组的指针即整个数组在内存中的起始地址,而数组元素的指针是数组中某一元素所占存储单元的地址。 利用指针法引用数组元素能使目标程序质量高、占内存少、运行速度快。 C++语言中规定:数组名就代表数组首地址,也就是数组第0号元素的地址。如 int a[10]; int *p; p=&a[0];/*与p=a,是等价的*/ p+i或a+i就是a[i]元素的存储地址,即它们都指向数组的第i号元