C语言与数学的联系和区别


我经常问一些同学这样的问题:你要来学习C语言了,你数学成绩好吗?这并不是说数学成绩好,学起C语言来就轻松,也不是说数学成绩不好就完全学不成。数学成绩好,说明你逻辑思维缜密,你思考的时候脑筋转弯比较快,但是,你容易受到数学思维的干扰。数学成绩不好,说明你逻辑思维较差一些,但是,受到数学思维干扰的情况就比较少。好了,废话不多说,我只说一下初学者最不容易理解C语言的一些东西。

一:=与==的问题

如果你看着这个表达式:

num=num+1;

你可能会说:这个表达式怎么都不可能成立。确实,在数学思维里面,这个表达式确实是永远不会成立的。因为num绝对不可能与num+1相等。但是,在C程序里面,这个可是一个重要的表达式。

首先你要弄明白的是:“=”符号的含义。在C程序中,“=”符号表示“赋值”,即:让左边的变量或表达式接收右边表达式的值。所以,num=num+1的真正含义是:把变量num加上1的结果赋值给num。由于赋值运算符的特殊性,即:先完成“=”号右边的运算,再进行赋值,所以num=num+1,是先运算num+1,再把num+1的结果赋值给num。

那么,C程序里面表示“相等”的符号呢?答案是“==”,即两个赋值符号连接在一起,就表示相等了。

二:函数的区别

在数学中和C编程中,经常听到一个名词“函数”。但是,C编程中的函数和数学中的函数意义是不一样了。数学中的函数大概就是“映射”这样吧(PS:鄙视一下我自己,数学知识忘光了),但是,C编程的函数,却是“功能”的意思,因为在英语中“函数”和“功能”都是function一词。C编程中的函数,实际上就是将一个大的功能,分解成许多小的功能,然后放在main函数中进行调用,实际上就是各个功能模块在main函数里面进行一次“驱动”。所以,用数学的思维去理解C语言的函数,那只能是自己撞南墙。

相关内容