以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 C/C++编程思想 』 (http://bbs.xml.org.cn/list.asp?boardid=61) ---- 荤菜求助:一个比较基本的关于指针的题目 (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=46403) |
-- 作者:荤菜 -- 发布时间:5/4/2007 11:18:00 PM -- 荤菜求助:一个比较基本的关于指针的题目 /*程序1,输入一个数,打印一个数*/ main() {int a[10],*p,i; p=a; for(i=0;i<10;i++) {scanf("%d",p++); printf("%d ",*p); /*问题1:打印出错,为什么不可以写成*p*/ } getch(); } /*程序2,输入十个数,打印十个数*/ |
-- 作者:荤菜 -- 发布时间:5/4/2007 11:20:00 PM -- 谢谢了. |
-- 作者:Davidlong -- 发布时间:5/5/2007 12:03:00 PM -- 改为这样,问题1你就知道了 {int a[10],*p,i; p=a; for(i=0;i<10;i++) {scanf("%d",p); printf("%d ",*p); /*问题1:打印出错,为什么不可以写成*p*/ p++;/*应打印后再递增,否则指向下一个去了,打印的是下一个不确定的值,而不是当前输入的 } getch(); } 第二个问题,我在Win_tc下编绎通过,没有问题. |
-- 作者:荤菜 -- 发布时间:5/5/2007 4:22:00 PM -- 谢谢啦!我的程序2中第2个问题其实是这样的:为什么不能该成a++?还有"printf("%d",p++):"这不是把输入的一个值送到指针变量p的地址吗?我记得指针变量是不可以存放整数,只能存放地址的呀. |
-- 作者:Davidlong -- 发布时间:5/6/2007 10:08:00 AM -- 楼主真好学,使我想起了我的学习时光 "为什么不能该成a++?" a是数组名,虽然也代表地址,但注意,只有变量才能改变值,而a是一个常量,所以a++不合法. "还有"printf("%d",p++):"这不是把输入的一个值送到指针变量p的地址吗?" |
-- 作者:荤菜 -- 发布时间:5/6/2007 11:35:00 PM -- 谢谢啊 |
-- 作者:Davidlong -- 发布时间:5/7/2007 6:24:00 AM -- 其实还可以这样理解, scanf("%d",p); = scanf("%d",&i); 因为 p=&i;(当然要先初始化为p指向i) |
-- 作者:卷积内核 -- 发布时间:5/7/2007 10:37:00 AM -- 1、*p 是指针,打印输出应该是里面的内容 &p。 2、p 是指针可以++,但是a是数组名,应该是a[i++]。 |
-- 作者:kutiny -- 发布时间:5/7/2007 9:05:00 PM -- 先对LZ汗个。 这精神。。。好。。。自卑。。。 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
2,480.469ms |