大家好,今天小编关注到一个比较有意思的话题,就是关于c语言帮解题的问题,于是小编就整理了2个相关介绍c语言帮解题的解答,让一起看看吧。
谭浩强的C语言技术真很牛吗?他写过哪些厉害的程序?
一般来说,偏基础的,偏理论的,老师的水平与教学水平是两回事。他能够把基础的东西很好地教会你,这就是他的本事,高手教你你还不一定懂,因为别人觉得显而易见的东西你可能要想好几天...
很多人觉得他的书不行,不过个人感觉是一个适合绝大多数没有接触过编程的人的。那为什么对这本书大多数嗤之以鼻的唾弃,你高中的时候会觉得小学生的课本写的好?当你到达一定层次之后回头再看这本书,你就觉得这书不行了。但是依旧不能否定这是一本极其适合入门编程的书
他这人出版过c/c++相关书籍,对很多入门以他教材学习的学生影响很大。
客观来说,江湖评价,谭这人的书很烂,由于先入为主原因,他害了一大批学生,他的思想僵化,对学生以后的思维逻辑是有负面的。
谭的书教的是c语言,重点仅仅是语言本身,不是数据结构、不是程序设计、不是数值计算方法,不是gui设计,所以不能扩展外延去对比。
作为语言的入门教材,还是比较细致的。
C语言中的goto语句。为什么老师反复强调不能用?
谈goto色变,主要是goto太自由了,甚至比汇编语言的jump更自由,jump还要考虑长地址短地址等跳转,而goto根本没有任何限制,他可以直接从函数内部调到函数外部甚至其它函数的位置。这就牵扯到一个问题,我们都知道函数调用是保护当前上下文,也是当前执行堆栈和寄存器,一旦进入被调用函数的内部,堆栈和寄存器就全变了,如果函数内部再用goto到其它地方函数不再返回,程序肯定就全乱了,而且导致内存泄露。所以,使用goto必须要加限制条件1.函数内部goto只能goto到函数内部,保证函数能够返回到被调用的2.中断内部用goto也是一样,goto必须要能够保证中断正常返回,不然也会导致中断异常。总结,goto不推荐使用的原因主要是它可以不受任何条件限制,跳转到你想要去执行的地方,过于自由,但是是好事还是坏事取决于程序开发人员的设计是不是考虑得完善,是不是会导致这样那样的问题。
不是不能用,而是说如果用的不恰当,就很容易出现“面条代码”(结构混乱,难以理解)。
在大学期间学习C的时候,老师讲过一个很典型的例子:
#include <stdio.h>
void main()
{
int a=1,b=2;
if(a<b)
goto aa;
printf("hello");
aa:printf("s");
return 0;
}
将上面的代码改一下:
int a=1,b=2;
if(a>b)
goto aa;
printf("hello");
aa:printf("s");
return 0;
输出结果:hellos
因为会破坏程序的逻辑。goto本质上讲是c语言语法不规范的时候从汇编延续来的,但是现在高级语言都是用顺序,判断,循环结构,这些就足够了。。你莫名其妙使用goto,我不会觉得你厉害,我会觉得你神经病吧
当你的规模比较庞大的时候你就能体会到goto的强大了,它可以强大到你怀疑人生,自己从哪里来要去哪里这个哲学问题会让你崩溃到让你想投胎回炉重造。goto一时爽,项目火葬场。被review到你就等着人事找你办理离职手续。
到此,以上就是小编对于c语言帮解题的问题就介绍到这了,希望介绍关于c语言帮解题的2点解答对大家有用。