为什么C语言用for循环键盘输入数字数组后,再*max=a发现max指向的并不是数组的首地址

C语言用for循环键盘输入数字数组后,再*max=a发现max指向的并不是数组的首地址

代码

#include <stdio.h>

void main()

{

int a[3],*p=a;

int i;

int *max,*min;

printf("input ten int:");

for(i=0;i<3;i++)

scanf("%d",p++);

*(p+3)='';

p=a+1;

max=a;

for(i=1;i<3;i++)

{

printf(" %d",*p);

p++;

}

printf("n");

printf("max=%dn",max);

}

运行结果如图:图片说明

如何才能让max等于a[3]的首地址,在键盘输入完成后p需要重新指向a[3]也是在网上找的,但是这个max实在找不到了,

回答

p=a+1;

这个操作导致下面的for循环越界

*(p+3)='';

这个也越界

printf("max=%dn",max);

如果要输出a[0]应该是

printf("max=%dn",*max);

以上是 为什么C语言用for循环键盘输入数字数组后,再*max=a发现max指向的并不是数组的首地址 的全部内容, 来源链接: utcz.com/a/31532.html

回到顶部