一、指针变量自加1,在地址上是变为下一个与他相邻的地址,在数值上是加4,因为一个int 型占4个字节。
二、数组的本质其实是一堆连续的地址,例如,int a[20],其中a就代表着数组第一个元素的地址,(a+1)代表第二个,以此类推。
三、利用指针申请一个动态数组
利用malloc函数
#include <stdio.h>#include <stdlib.h>
int main()
{
int *p;
int n,i;
scanf("%d",&n);
p=(int*)/*强制转换类型,malloc的返回值为void,所以强制转换为int型放入p中*/malloc(n*sizeof(int/*数组的类型*/));
//p=(int*)calloc(n,sizeof(int));
for(i=0;i<n;i++)
scanf("%d",&p[i]);
free(p);//每次使用完后都要用free释放该空间。
return 0;
}
这样就可以不用申请一个大的数组浪费内存空间。