遍历一维数组+倒置
#include <stdio.h>
#define N 10
int main()
{
int* p = NULL; //创建并初定义指针
int a[N] = {0};
for (p = a; p < a + N; p++) //输入数据
{
scanf("%d", p);
}
for (p = a + N - 1; p > a-1; p--)//打印数据
{
printf("%d ",*p);
}
return 0;
}
在scanf()语句中,空格有特殊作用
对于scanf("%d "', p); //注意%d后面有空格
需多输入一个数据才执行下一步.
p , a 都表示 &a[0],即数组a的首地址
#include <stdio.h>
int main()
{
int a[5] = { 8,7,4,6,2 };
int* p = NULL;
p = a;
printf("%p\n", p - 1);//指向上一个元素的地址,数组已经越界,系统不做数组越界检查
printf("%p\n", p);
printf("%p\n", p + 1); //指向下一个元素的地址
return 0;
}
运行结果:
注:地址以4递增 , int数据类型所占内存空间4字节
2.27