以下是引用gold615在2014-12-16 22:32:41的发言:
《c与指针 》上的一道题目,没想明白,这两种用指针的方法有什么区别吗?
#include<stdio.h>
main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
int *p=a;
p+=3;//指针和整型常量相加
printf("%d\t",*p);
p=a;
int offset=3;
p+=offset;//指针和整型变量相加
printf("%d\t",*p);
}
《c与指针 》上的一道题目,没想明白,这两种用指针的方法有什么区别吗?
#include<stdio.h>
main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
int *p=a;
p+=3;//指针和整型常量相加
printf("%d\t",*p);
p=a;
int offset=3;
p+=offset;//指针和整型变量相加
printf("%d\t",*p);
}
这个例子只是告诉我们指针在数组中的移动n项,可以由p=p+n实现。其中n可以是整型常量,也可以是整型变量。
Ps:这是我的理解。