#鹏哥C语言#P79
指针运算-指针加减整数
案例一:通过改变指针指向改变数组的值
代码展示:
#include<stdio.h>
int main()
{
#define N_VALUES 5
int i=0;
float values[N_VALUES];
float *vp;
for(vp=&values[0];vp<&values[N_VALUES];)
{
*vp++=0;
}
for(i=0;i<5;i++)
{
printf("%lf\n",values[i]);
}
return 0;
}
最后指针*vp虽然指向了values[5] ,但是只是看了一眼,没做出任何运算,不算野指针
运行结果展示:
案例二:通过改变指针指向去改变数组的值
代码展示:
#include<stdio.h>
int main()
{
int arr[10]={10};
int i=0;
int sz=sizeof(arr)/sizeof(arr[0]);
int* p=arr;
for(i=0;i<10;i++)
{
*(p+i)=1;
/* *p=1;
p++;
*/
printf("arr[%d]=%d\n",i,arr[i]);
}
return 0;
}
运行结果展示: