#include “Stdio.h”
#include “Conio.h”
f(int a[])
{int i,*q;
q=a;
for(i=0;i<10;i++)
{if(i-5==0)
*(q+5)=45;
else *(q+i)=a[ i];}
}
int main(void)
{int i,*p,a[10];
p=a;
for(i=0;i<10;i++)
scanf(“%d”,p++);
f(a);
p=a;
for(i=0;i<10;i++)
printf(“%d”,p++);
getch();
return 0;
}
这个我用了函数以及指针,编译的本意是:
输入10个数字,通过指针变量,将第6个数字更改为45。
例如我输入 1 2 3 4 5 6 7 8 9 0
我希望的结果是1 2 3 4 5 45 7 8 9 0 此段到最后也提示编译成功,没有语法问题,但是不管我输入的十位数字是什么,最后的值是
-72-70-68-66-64-62-60-58-56-54
请大家帮我分析下错在哪里,而这样为什么会是这个结果。
>> 本文固定链接: http://www.vcgood.com/archives/2834
死在了家门口,最后输出的时候应该是*p++
其实我也不知道怎么做…..
我也不知道啊!谁快做出来吧!分享一下吧!
祥眭耋斕腔蚚砩岆妦繫ㄛ??硌??
#include “Stdio.h”
#include “Conio.h”
f(int a[],int n)
{
a[n]=45;
}
int main(void)
{
int i,n,a[10];
for(i=0;i<10;i++)
scanf(“%d”,&a[i]);
f(a,n);
for(i=0;i<10;i++)
printf(“%d”,a[i]);
getch();
return 0;
}
把你最后一个for循环里面的语句改为
printf(“%d”,*(p++));
就行了
同意楼上的
引用指针 所指地址 的变量的值
必须加
”*“