#include<stdio.h> void fun(int *p) {printf("%d\n",p[5]);} main() {int a[10]={1,2,3,4,5,6,7,8,9,10};

的答案是9为什么不是8.。。谢了

大哥 你函数都没调用噢 怎么得出9呢?如果在主函数加上fun(a)的话,结果是6,不可能是9或者8噢!
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-01-25
你的代码不全 没法分析哦
第2个回答  2012-01-27
有完整代码吗?

#include<stdio.h> void fun(int *p) {printf("%d\\n",p[5]);} main...
大哥 你函数都没调用噢 怎么得出9呢?如果在主函数加上fun(a)的话,结果是6,不可能是9或者8噢!

...#include<stdio.h> void fun(int *p) { printf("%d\\n",p[5...
当然是9啦 a[3]=4,然后&a[3]就将a[3]的地址作为参数给了p 相当于p[5]这个数组的起始地址是从a[3]开始 所以。你printf p[5]就等于9了

#include <stdio.h> int a=5; void fun(int b) { int a=10; a+=b...
注意fun函数中的又定义了同名变量a,在fun函数中所有的a都是针对局部变量a的修改,每次重新调用a都会返回初值10 而main函数中的a是全局变量a,初值是5 输出 30 25

函数调用时,怎么能用指针知道数组的第二个元素
include <stdio.h> void fun(int *p){ printf(" %d \\n", p[1]); \/\/p[1]就是传入的数组的第二个元素。} int main(){ int n, a[10] = {2, 3, 1, 7, 11, 8,99, 27, 15,6}, i;fun(a);}

# include <stdio.h> void fun (int p) { int d=2; p=d++; printf("%...
一:include <stdio.h> int fun (int p) \/*改函数类型为返回int型值*\/ { int d=2;p=d++;printf("%d",p);return p;} main(){ int a=1;a=fun(a);printf("%d\\n",a);} 或者 include <stdio.h> void fun (int *p){ int d=2;p=d++;printf("%d",*p);} main(){ in...

#include<stdio.h> void f (int *p); main() {int a[5]={1,2,3,4...
include<stdio.h> void f (int *p);void main(){ int a[5]={1,2,3,4,5},*r=a;f(r); \/\/将首地址a传给函数p printf("%d\\n",*r); \/\/由于是值传递,即将r的值传给p,但是没有改变r的值,\/\/此时*r的值既是a[0]} void f (int *p){ p=p+3; \/\/将p所指向的地...

...#include<stdio.h> main() { int a[10]={1,2,3,4,5,6,7,8,9,0}...
这里是输出地址的16进制值 假如1个整数是2个字节,则p+9 比p多了2*9 =18,为16进制的12H,加上194H,就是1A6H,答案是D 如果1个整数占4个字节,则p+9 比p多了4*9 = 36,为16进制的24H,加上194H,得到1B8,题目中没有答案

#include<stdio.h> main() { int a=10; int*p; *p=a; printf("%d",*p...
p是指针,指针必须指定一个内存,才能使用。你直接取的是*p,等于没有指定内存,直接的把a的值赋予一个空的指针上了。还有,你的main需要一个声明。正确的应该是这样的。include"stdio.h"int main(){ int a=10;int *p;p=&a;\/\/取a的内存位置,让指针p指向a。printf("%d",*p);return 0;\/\/...

#include<stdio.h> void fun(int x) { x=20; } main() { int x=10...
结果仍然为10 c的函数都是值传递的,也就是形参值的改变,不影响实参的值。如果想改变实参的值,可以使用指针。例如下面这样:include<stdio.h> void fun(int *x){ x=20;} main(){ int x=10;fun(&x);printf("x=%d\\n",x);}

...int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p = &a[3...
include <stdio.h>int main(){int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, *p = &a[3], b; b = p[5];printf("%d\\n", b);} 因为*p=&a[3]; 表明将a[3]的地址赋值给p,此时p[0]=a[3],因此p[5]=p[0+5]=a[3+5]=a[8]。

相似回答