c语言 数组 移动指针位置
#include<stdio.h>voidmain(){inta[5]={1,2,3,4,0};int*x=a[0];x=x+sizeof(int);printf("%d...
#include<stdio.h>
void main()
{
int a[5]={1,2,3,4,0};
int*x=a[0];
x=x+sizeof(int);
printf("%d",x);
}
为什么输出结果不是2? 展开
void main()
{
int a[5]={1,2,3,4,0};
int*x=a[0];
x=x+sizeof(int);
printf("%d",x);
}
为什么输出结果不是2? 展开
展开全部
int*x=a[0];
x=x+sizeof(int);
如果要输出2,应该这样写:
int*x=a;//或者 int *x = &a[0];
x=x+1;// x本身就是int指针,每次+1都是一个int大小
printf("%d",*x); //*x 才是指针的内容
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sizeof(int) = 4
结果应该是a[4] = 4
结果应该是a[4] = 4
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询