当时的想法是,连取址操作符&都不能用了,linux下C 还能用多少。遂自我堕落。
今天还心有余悸。提不起精神来复习C。但是我提醒自己一定要解决。所以我硬着头皮做,还是那个问题。有点挫败。然后我觉得我应该解决。搜索中没有搜到。我后来明白为什么搜不到了。因为没有这种问题,找问题找错了。然后我去论坛求助,csdn求助,一向吝啬的我悬赏了几乎我所有的分,我是真的豁出去想解决问题了。然后我有些焦急的等着。
然后我想,先做些事情吧.于是我先把这个程序存了,并再写了一个说明文件记录了问题。这对我来说是一种质的飞跃。因为我没有被困难拦住就啥也不做郁闷了。想想以前,我肯定就郁闷自暴自弃不学了。我会记住这个经验:遇到困难先搜索,搜索不行再网上求助。网上求助也是督促你关心问题,关心的你的声誉的一个好方法。实在需要等待很长时间,就先把问题收拾好,放好。然后一定会在将来某个时刻能得到解决。或者是你自己遇到相同的类型却成功,然后你就会回来看这个问题,你自己就解决了。或者是热心的人的准确的帮助。
我解决这个是前者。放好问题后,我继续开始学习。继续敲代码练习ubuntu下的C编程。后来我又遇到一个需要&的(scanf)。说实话,那时我心里有点怕,怕取址操作符&又坏了我一个程序。然后不知怎么的,我还是把它编译,竟然没报错,后来竟然运行成功了!
于是我开始反思。看来取址操作符&是能识别的。那我的那个程序肯定不是错在取址操作符&上。我又开始回头去看那个程序:
#include "stdio.h"
main(){
int x=0;y=0;
scanf("%d",&x);
if(x<0) y=x-1;
else{
if(x>0) y=x+1;
else y=0;
}
printf("x=%d\n y=%d\n",x,y);
}
我发现 int x=0;y=0;中间由于粗心弄成了“;”而应该是“,”
本来是个语法错误,但编译器就会说Y没有声明过,因为从编译器的角度的确没见到y声明了,他一看就见是y赋值,没声明就赋值。在我的想法里我是赋了值的啊。这样我就会迷惑郁闷了。其实的确是我自己出错了。
编译器是严格的,不是上岗上线,你的确是错在那儿了。以后不要怕拦路虎了。把它收起来,一小会后你就能解决它。