这本书算是一部经典,主要是因为好多学校的考研指定指导书就是它吧。虽然作为一名大学毕业生,在大学期间第一门计算机的语言课就是C,但是由于在学校期间自己动手思考的时候基本没有,所以挥霍了太多的学习时光,悔之晚矣?一次的学习失败,可能是由于没有仔细思考,自以为很懂或者懂了,计算机乃至做学问其实就是”纸上得来终觉浅,绝知此事要躬行”。躬行,躬行。欲练此功,必先自躬!
哎,为了断了自己做事情不认真敷衍的习惯,从头再来。便学习边记笔记,走过路过的朋友,觉得有借鉴的地方就了解一下,准备励志做from学渣to学霸。
第一章 C语言概述
1.1不外乎一些发展过程(几乎没啥yong,一会随便看看)
1978年一个实验室AT&T(据说是全球首屈一指的通讯控股公司,美国的一下百年企业),说白了就想中国的联通、移动、电信似的。有个挺牛的科学家,不,两个B.W.K和D.M.R(爱谁谁,不认识),写了本书定义了一定的标准,但并不是标准C,直到美国国家标准协会ANSI(American National Standards Institute),才在1983年像样。
所以说吧,做事情标准化很重要,有规则,按照规则做事,我们在这方面还任重而道远啊。
1.2 看看这本书定稿的时候所谓的当代最优秀的程序设计语言都有啥?
“当代”原来是指C语言问世的年代啊,插播一段:
对啊,说了这么多C语言到底干啥用的啊,说白了就是计算机一个强大的计算功能提在哪里,你说:“你给我算个数”,“啊,呸,小伙子你说的是啥”,计算机硬件底层的运算可能无法与人便捷的沟通交流,这时候一种能够几乎人类自然语言和计算机语言之间的语言就应运而生了。。。。。未完待续吧,够了。
C一开始用于UNIX系统(因为有些标准就是刚才写书的那两个K,R前辈写的),80年代进入其他操作系统,并被广泛应用。
不过如今的为满足各种用户需求及喜好的很么Pathon、Java、C#等等。
画外音---啥事UNIX?百度说:“UNIX操作系统(尤尼斯),是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统”又引出了什么是分式操作系统(采用时间片轮转的方式同时为几个、几十个甚至几百个用户服务)太细的不说了,再说就扯远了。又想起了上学时上操作系统课,脑袋里就是浆糊啊。
1.3 版本问题,这个可是涉及到各种编译环境的问题需要注意!
这个图(图片来源:http://www.crifan.com/summary_c_language_version_c89_amd1_c99_c11)
大概看一下吧,用的最常用的和经典的就是C89和C99版本的,小鹏友上学的时候基本都是按照这个版本操作的。
1.4特点还是要了解的
1)简洁、紧凑。32个关键字,关键字要小写
2)运算符丰富。括号、赋值、逗号都是运算符
3)数据结构丰、控制语句、语法限制不太严格。。。。
4)能直接访问物理地址,厉害不。进行bit位操作
5)目标代码质量高、效率高
8)跟汇编语言比可移植性好。
缺点就不讲了。自由就会导致的一些问题。
1.5面向对象的设计吧,一直不太清楚,理解不深刻,这次好好注意一下。
说的就是C++的事,作为对C的补充和完善提供了面向对象设计的程序语言。
1.6 C和C++的区别这次细细研究一下
先学C在学C++就会好一些。
1.7 简单的C程序就算是介绍也要逼着研究能写下来
#include
#include
#include
//使用sin函数输出一个数x的sin(x)的结果result
//需要引入标准数学的函数库math.h
//定义变量为双精度浮点数float
int main()
{
//定义变量
double x,result;
//友好的输入提示
printf("请输入需要计算sin值的弧度(sin)\n");
//输入接收变量
scanf("%lf",&x);
//计算
result=sin(x);
//输出
printf("The result of sin(%lf) is %lf!\n",x,result);
return 0;
}
头文件一般是由系统提供的。Stdio.h包含标准的输入输出函数
编译型高级语言的特定先定义声明后使用。
1.8 输入输出函数的写法和理解很重要!扩展的话可以去OnlineJudge(推荐一般开放性、友好型较好的浙江大学OJ-http://acm.zju.edu.cn/onlinejudge/ 缺点是好像忘了用户名密码就死翘翘了,本人就好不容易蒙对的才找到组织)。
#include
#include
int max(int a,int b)
{
return a>b?a: b;
}
int main()
{
int a,b,c;
printf("Please input twonumber\n");
scanf("%d %d",&a,&b);
c=max(a,b);
printf("The max number is%d\n",c);
return 0;
}
1.9 结构特点就是强化规范,套路,按部就班的操作吧。
1.10 更细的要求和规则,闲言碎语也要讲,现如今大了大了反倒没有了小学生学习的认真劲儿,和规范。经常剑走偏锋,不是学习之道,学生不更年也要静心啊,呵呵哈嘿。
1.11字符集?不知所云-----------不过也得之道啊、
字母、数字、空白符、标点和特殊字符都算
1.12 C语言词汇?忘了,完全没概念了,再看看吧。
分类:标识符、关键字、运算符、分隔符、常量、注释等
(1)标识符:变量名、函数名、标号,库函数名由系统定义。只能是字母、数字、下划线组合且第一个字符必须是字母或者下划线。
Tips:大小有别,长度最好不超8,“顾名思义”
(2)关键字,就是被C语言自己预留了一些有特殊意义的字符串,类型(int)、语句(if else)、预处理命令字(include)
(3)运算符由一个或者多个字符组成,就没有啥说的了
(4)分隔符,逗号和空格两种。Inta与int a的不同,会写就行了,看着不舒服的地方就给个空格,又不多收钱。
(5)常量,数字常量、字符常量、字符串常量、符号常量、转义字符等
(6)注释符,/* */
1.13 书上是TurboC2.0的,有些学校也推荐学生安装VC++6.0啥的,不过可能是初恋情怀吧一直喜欢Codeblocks(开源啊,免费啊,360商店就能下载啊,具体安装使用间另外一篇文章吧,这个写这么多快写不动了。)