指针题目及答案,几道C语言指针题目

1,几道C语言指针题目最后一题题目有点问题,int *p,a=4;和p=a;照它这样说的话,那么指针p就没有指向了,应改为int *p,a=4;和p=&a;1、c2、a3、c、d4、d5、d6、个人觉得没答案
2 , C语言指针习题解答int a,b[5]; // 声明a=0; b[0]=3; // 初始化func(&a,b); // 相当于b[0]=a+6; 即b[0]=0+6;printf("%d\n", b[0]); // func为传址调用,b[0]为6答案为6,原因见上面的注释 。二楼正解 。如果是考题,就不用多想了 。如果是自己写的,第一,b[5]未完全初始化,应该避免 。第二 , func中应当对指针参数的合法性进行判断,避免非法调用 。
3,3道关于C语言指针的题目第三题和第四题LZ已经给出答案了 。。还要问什么呢??第五题的错误是输入完成的时候,指针p已经指向a的最后了 。而输出的时候p继续后移,明显已经指向a之外了,正确的做法应该是输出的时候让p重新指向a的首地址 。代码如下:main()p=a;for(j=0;j<10;j++)scanf("%d",p++);for(j=0,p=a;j<10;j++,p++)//让p重新指向a的首地址printf("%d",*p);}第二小问的修改是不行的 , 因为a是数组名,不是指针,它可以代表数组的首地址,但不是像指针一样进行指向移动的操作 。如果要类似的操作的话,应该是用指针指向首地址,然后用指针移动指向并输出 。。如下代码,黑体表修改:main()p=a;for(j=0;j<10;j++)scanf("%d",p++);for(p=a;p<(a+10);p++)printf("%d",*p);}【指针题目及答案,几道C语言指针题目】

    推荐阅读