标题:你是C语言的爱好者??那来吧!!
只看楼主
binghe517
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2004-7-9
 问题点数:0 回复次数:19 
你是C语言的爱好者??那来吧!!

本人曾有一程序,愿与你共勉: 通过指针变量输出数组的20个元素。 main() { int *p,i,arr[20]; p=arr; for(i=0;i<20;i++) scanf("%d",p++); printf("\n"); for(i=0;i<20;I++,p++) printf("%d",*p);

}

请问我的这个程序对吗? 请提出你宝贵的意见。呵呵......

搜索更多相关主题的帖子: C语言 爱好者 arr 变量 printf 
2004-07-23 14:31
ChenMo
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:481
专家分:10
注 册:2004-4-8
得分:0 
不正确,因为指针没有复位。
使用指针来写这种简单的程序而冒险,我认为不值得,
就如上边的程序一样,指针P指到那里去了呢?


[此贴子已经被作者于2004-07-23 16:06:41编辑过]



欢迎加入 MVC 技术讨论群(新群:90093426)
2004-07-23 16:05
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
得分:0 

呵呵,科学研究嘛,干什么都是值得的,要不我们干吗不直接发射神州5号就行了呢~

如楼上所说的:指针没有复位是关键


淘宝杜琨
2004-07-23 17:53
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
得分:0 
以下是引用ChenMo在2004-07-23 16:05:23的发言: 不正确,因为指针没有复位。 使用指针来写这种简单的程序而冒险,我认为不值得, 就如上边的程序一样,指针P指到那里去了呢?

不敢苟同!如果是简单的程序都不会运用指针,你还指望他在复杂的程序中用吗?

指针是C的灵魂,不会熟练运用指针就不能说学会了C。


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-07-23 21:20
swj9717
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2004-7-22
得分:0 

请教一下楼上的哥哥~

我是一个初学者

为什么我每次练习写程序,写完运行的时候,下面总是会出现“0个错误,1个警告”。这我就不懂了。

难道是有什么地方不太妥吗?

还是什么地方应该注意一下啊?

2004-07-24 00:35
碎方脸
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2004-7-24
得分:0 

在编一次就好了

经常有这种情况,不影响程序的

2004-07-24 09:23
ChenMo
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:481
专家分:10
注 册:2004-4-8
得分:0 
以下是引用knocker在2004-07-23 21:20:06的发言:

不敢苟同!如果是简单的程序都不会运用指针,你还指望他在复杂的程序中用吗?

指针是C的灵魂,不会熟练运用指针就不能说学会了C。

呵呵,我是出程序的应用及安全方面考虑, 如果程序因为这样而产生错误或者其他事故, 实在不值得。 你们都说得很对,当然要运用指针,不然就白学了C一趟, 学习归学习,还得注意的,我的意思是:谨慎。 不怕见笑,本人学习指针的时候也经常有此错误, 有时候指针指到哪地方都不知道了, 是于经常发生错误,错在那里也不知道。 为此我把这类错误都硬背了下来, 又抄了几遍,挺傻呆呆的呵呵。 有种“一招被蛇咬,十年怕井绳”的感觉。


欢迎加入 MVC 技术讨论群(新群:90093426)
2004-07-24 10:32
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
得分:0 
以下是引用swj9717在2004-07-24 00:35:30的发言:

请教一下楼上的哥哥~

我是一个初学者

为什么我每次练习写程序,写完运行的时候,下面总是会出现“0个错误,1个警告”。这我就不懂了。

难道是有什么地方不太妥吗?

还是什么地方应该注意一下啊?

逻辑上有错误或者逻辑上有可能错

例如:

if(a=1)printf("****");

这样就会有警告,但是程序能通过编译且能正确运行。


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-07-24 10:53
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
得分:0 
以下是引用ChenMo在2004-07-23 16:05:23的发言: 不正确,因为指针没有复位。 使用指针来写这种简单的程序而冒险,我认为不值得, 就如上边的程序一样,指针P指到那里去了呢?

斑竹厉害,一眼看到致命的错误。 其实还有一个错误,就没有给p赋值,在main函数中定义的属于局部变量, 我指的是那个数组是一个局部变量,于是其20个值都是随机数而不是0! 最后计算p指针复位,打印出来不是0而是20个随机变量而已。 我姑且说说,致命的还是在指针,不过来讨论一个问题好吗? 它这样写编译时可以通过吗?请在不实践的情况下想一想,到底是会提示什么错误? 是说指针not found呢,还是可以通过而打印出内存地址?或者其它?

[此贴子已经被作者于2004-07-24 15:56:05编辑过]

2004-07-24 13:14
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
得分:0 
以下是引用live41在2004-07-24 13:14:01的发言:

斑竹厉害,一眼看到致命的错误。

其实还有一个错误,就没有给p赋值,在main函数中定义的属于局部变量,

我指的是那个数组是一个局部变量,于是其20个值都是随机数而不是0!

最后计算p指针复位,打印出来不是0而是20个随机变量而已。

我姑且说说,致命的还是在指针,不过来讨论一个问题好吗?

它这样写编译时可以通过吗?请在不实践的情况下想一想,到底是会提示什么错误?

是说指针not found呢,还是可以通过而打印出内存地址?或者其它?

真不知你在说些什么?

main() { int *p,i,arr[20]; p=arr; for(i=0;i<20;i++) scanf("%d",p++); printf("\n"); p=arr; //就是少了这一句 for(i=0;i<20;i++,p++) printf("%d ",*p);

}

你的那些什么什么问题从何谈起?


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-07-24 15:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-3534-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.128702 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved