C语言,请求大佬帮我看一下,为啥我输出键盘输入的数不对?
本帖最后由 kuschzzp 于 2019-10-23 23:42 编辑#include<stdio.h>
int main()
{
int *p,i,a;
p=a;
for(i=0;i<4;i++)
{
scanf("%d",p++);
printf("输入的数是:%d\n",*p); // 这里输出的并不是我输入的数!!!!看不懂
}
printf("\n");
for(p=a,i=0;i<4;i++,p++)
{
printf("%d ",*p);
}
}
这后面的0,37 属实不理解
输出结果如下:
333
输入的数是:0
33111
输入的数是:37
123
输入的数是:0
222
输入的数是:37
333 33111 123 222
--------------------------------
Process exited after 9.741 seconds with return value 0
请按任意键继续. . . #include <stdio.h>
int main()
{
int *p, i, a;
p = a;//这里p已经初始化指向a;
for (i = 0; i < 4; i++)
{
scanf("%d", p + i);
printf("输入的数是:%d\n", *(p + i));
/*
或者
scanf("%d", p);
printf("输入的数是:%d\n", *p);
p++;
*/
}
printf("\n");
printf("你输入的是\n");
for (i = 0; i < 4; i++)//for(p=a,i=0;i<4;i++,p++)这里 p = a,纯属多余p开始就初始化指向a,i++,p++也真是蜜汁操作.
{
printf("%d ", *(p + i));
}
}
------------------------------------------------------------------------------------
Microsoft Windows [版本 10.0.16299.1087]
(c) 2017 Microsoft Corporation。保留所有权利。
E:\Users\86184\Documents\Code>c:\Users\86184\.vscode\extensions\ms-vscode.cpptools-0.26.0\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-ydjqkvdc.0g2 --stdout=Microsoft-MIEngine-Out-hnjystdy.bof --stderr=Microsoft-MIEngine-Error-k5ahl55e.5sy --pid=Microsoft-MIEngine-Pid-jocu2ru0.afi "--dbgExe=E:\My Program\MinGW\bin\gdb.exe" --interpreter=mi
01
输入的数是:1
32
输入的数是:32
69
输入的数是:69
123
输入的数是:123
你输入的是
1 32 69 123
E:\Users\86184\Documents\Code> #include<stdio.h>
int main()
{
int *p,i,a;
p=a;
for(i=0;i<4;i++)
{
scanf("%d",(p+i));
printf("The number is: %d\n", *(p+i)); // 这
}
printf("\n");
for(p=a,i=0;i<4;i++,p++)
{
printf("%d ",*p);
}
}
地址不可变,p++不会改变p的值
页:
[1]