共有回帖数 0 个
-
C语言,即作为语言,也就必须说下以下几点:
1 C不是一种软件,只是一种语言,像英语法语德语,这种语言在不同时期遵守不同的标准(如C89,C99),其本身是免费的——不会有人因为你说德语就收费是吧?其可以在不同的软件上实现——就像英语可以写在纸上,也可以显示在屏幕上。而这些软件不尽是免费的。
2 中国话是是实现了中国人和中国人之间的交流。而C语言则是实现了人——也就是程序员和各位小鹏有——和机器之间的交流。语言也分高级低级,但这分别,并非高低贵贱的分别。而是牵涉到运行效率和开发效率之间的分别。汇编语言(assembly)作为不折不扣的面向底层的语言,运行效率很高,但其实现计算一个常数(这里是3)的四次方的方法如下:
mov ax,3 ' 将立即数3放入寄存器ax
add ax,ax '计算二次方
add ax,ax '计算四次方
一个简单的运算就要打3行,如果要编一个更大的程序呢?那就活脱脱一个杯具。能不能使得开发效率高点呢?能。看看C语言是怎么实现的:
int a; /*定义整型变量a,赋值为3
a=a*a*a*a; /*计算四次方
是不是形象直观多了?那既然C这么优秀,汇编这么古老的东西早就该抛弃了吧?当然不是。因为汇编的运行效率的优势在一些领域是无可比拟的。我们看到:运行效率高的,开发起来慢;开发效率起来了,运行效率又有得下降了(当然,好的C程序运行起来不比汇编写的慢多少);所以,每种语言,自有其意义。那么,有没有一种开发起来更简单,运行起来又比C漫一些的语言呢?大家去查一查吧。
3 面向对象与面向过程
林老总当年打仗有一个特点,一打大仗,直接给下面各小弟下达攻击目标;至于怎么去穿插分割,迂回击破,洒家不管,那是你们的事情,给我办成就行了。
打仗有得放权,那编程呢?
面向对象,说难难,说易易;其实也就是编程中的放权。
所谓封装性,不可知只是表象,
玩过魔兽争霸的同学应该了解魔兽的地图编辑器吧,玩过上古卷轴的同学应该知道mod吧。要编辑一个英雄,要他在哪出现有什么技能,点几下编辑器就OK了,方便吧?但是点那几下,究竟内部发生了什么?调用了那些函数,改变了那些参数,这些我们都不知道,也不需要知道。
所谓公论,C语言是面向过程的,所以后来有了专门面向对象的C++;其实面向对象应视做一种思想,就此而言,C编的好,也是可以面向对象的。
下面开始“Hello world”
Hello world是编程世界中的咒语,学C先输出一个Hello world,那你肯定信心大增。完整代码如下,下面再一行行解释。
#includestdio.h
int main()
{
printf("Hello world");
return 0;
}
1 #includestdio.h
庄生晓梦迷蝴蝶,望帝春心托杜鹃——李商隐.锦瑟
刚开始学这首诗的时候,我一直纳闷,这“望帝”究竟是什么东西?当时当然不会想到去《华阳国志.蜀志》去查出处,望帝原来是一个真真正正的杯具帝阿~为什么要说这个?大家看到下面有个printf没有?在用有的编译器时你必须加#includestdio.h,就是为了要告诉编译器去哪查找printf的出处。#include 就是告诉编译器这是一个预处理命令——这首诗可是有出处的;去哪查呢,去stdio,h这个文件里面去查。
以后大家编写C语言程序,绝大部分在文件头要加个#includestdio.h。
2 main函数
大家还记得中学学函数y=f(x)吧,f就是函数,x就是参数,y就是返回值。一个函数,你给他一个参数,它就给你一个返回值,很划算对不对?当然,C语言里面也有函数,但是不都是一个参数一个返回值,有些函数你不给他参数它也给你返回值,有些函数你给他几个函数它也不给你一个返回值,很小气。这样的函数也叫做“过程”,过一过而已嘛,别想得什么东西。
main函数也是一个函数,我们把printf()踢开,来看看他的框架:
int main()
{
return 0;
}
先看main右边的(),这个东西就是拿来放参数的,可以一个参数都不放,也可以放两个,这里我们选择不放,所以就空着。以后学深入了,就可以往里面放参数了,也就是所谓“命令行变元”是也。
再看{}和里面的return 0。{}中间就是main的具体实现——main究竟是干什么的。这个框架里,我们知道main只做了一件事情,就是返回了一个整数0。
综上,main函数是这样一个函数:我们不给它任何参数,它给我们一个返回值0。参考y=f(x)的形式,main函数可以山寨地表述成这样:0=main()。只是一个比方,大家千万别这样写。
还剩一个int,这个int是什么呢?就是告诉编译器,main返回一个整数(integer)0,而不是其他类型的数。这个int也可以不写,甚至renturn 0也可以不写,编译器会自动帮你加上,但是千万别写void main()上去,这是不符合规范的。void main()的写法在C语言吧被诟病很多年,有兴趣的可以去看相关帖子 ^_^。
3 printf函数
前面说过,main函数你不给他参数,他也给了你一个返回值,很大方。这里我们看到了一个不那么大方的函数printf(),你给了它一个“Hello world”作为参数,他才给你一个返回值。返回值也是int型,只是我们这里不用罢了。这个函数的意义就是,把你给它的参数输出到标注输出(也就是屏幕)上面。
楼主 2016-04-15 12:34 回复
Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
意见反馈 |
关于直线 |
版权声明 |
会员须知