C语言郝斌视频学习一 变量为什么要初始化和一个小例子以及大纲笔记
??变量对应于内存中的一个存储单元,变量的本质是 ?"内存中一段存储空间"
?
简单一元二次方程示例:
# include <stdio.h># include <math.h>int main(void){//save three varibleint a = 1; // = means assignint b = 5;int c = 6;double delta; //delta save b*b - 4*a*cdouble x1,x2;//save two result about this program's delta = b*b - 4*a*c;if(delta>0) {x1 = (-b + sqrt(delta)) / (2*a);x2 = (-b - sqrt(delta)) / (2*a);printf("该一元二次方程有两个解, x1 = %f, x2 = %f\n", x1, x2);}else if(delta==0){x1 = x2 = (-b) / (2*a);printf("该一元二次方程有一个解, x1 = x2 = %f\n", x1);}else{printf("无解");}return 0;}?
大纲笔记:
C语言概述
? ?1、为什么学习C语言
? ? ?1)C的起源和发展
? ? ?第一代语言:机器语言01代码
? ? ?第二代语言:汇编语言就是简单的助记符ADD
? ? ?第三代高级语言:结构化语言(面向过程)C,Fortran用于
? ? ? ? ? ? ? ? ? ? ? ? ?科学计算Basic演变为VB,Pascal
? ? ? ? ? ? ? ? ? ? ? ? ?用于教学。
? ? ? ? 面向对象(OO)C++,java(SUN改造过),
? ? ? ? ? ? ?C#(微软改造的),后两种都是针
? ? ? ? ? ? ?对C++改造的。因为C++比较复杂。
? ? ?结构化语言有缺陷:数据和操作分离。如果你学会C++
? ? ?那么剩下都不用学了。因为它都包括了面向过程和对象 ? ? ? ?
? ? ?2)C的特点
? ? ?优点:
? ? ?代码量小(WPS) ? 速度快 ? ?功能强大(写操作系统)
? ? ?缺点:
? ? ?危险性高:(同样的程序java中就会报错)可以随便写
? ? ?开发周期长:因为它是面向过程语言,10万行代码以上容易崩溃
? ? ?可移植性不强:因为java的可移植性太强了。C的话两台机器跑
? ? ? 起来可能不一样。
? ? ?
? ? ?3)C的应用领域
? ? ?系统软件开发:
? ? ?操作系统:三大
? ? ?驱动程序:主板驱动、显卡驱动、摄像头驱动
? ? ?数据库:DB2,Oracle,Sql server
? ? ?应用软件:
? ? ?办公软件:WPS
? ? ?图形图像多媒体:ACDSee,PS,MediaPlayer
? ? ?嵌入式软件开发:智能手机,掌上电脑
? ? ?游戏开发:2D,3D游戏(CS整个引擎都是纯C。魔兽不是
? ? ?4)C的重要性
? ? ?有史以来最重要的语言
? ? ?所有大学工科理科学生必修课程
? ? ?系统软件都是用它开发
? ? ?合格黑客必须掌握
? ? ?程序员必须熟练
? ? ?大企业、外企招聘必考
? ? ?为数据结构,C++,java,c#做准备
? ? ?
? ?2、怎样学习C语言
? ?每一讲分四次课
? ?前两节课为理论课,讲授理论知识
? ?后两节课为上机课,在机房完成当堂练习
? ?要去:
? ?当堂练习必须在两节上机课中完成
? ?机房随时有辅导老师辅导
? ?老师检查后方可离开
? ?途径:多思考,多上机
? ?目标:能看懂程序,能调试程序,自学能力要很强
? ?其实就是犯错误的过程,肯定会有错误,全都出完了,就学好了。
? ? ? 参考资料:
? ? ? 谭浩强《C语言程序设计》清华 ? ?绝对入门经典(就是自己能看懂)
? ? ? 《C Primer Plus》人民邮电 ?60元 ? 语法
? ? ? ?《C和指针》 人民邮电 ? 65元
? ? ? ?在想变成高手看:
? ? ? ?《C专家编程》 ?绝版
? ? ? ?《C陷阱与缺陷》人民邮电 ? 30元
? ? ? ?
? ?3、学习的目标
? ?了解程序语言及发展历史
? ?熟练掌握C语言的语法规则
? ?掌握简单的算法
? ?理解面向过程的思想,这非常有助于将来对面向对象思想的学习
? ?能看懂程序
? ?会调试程序
? ?掌握将大问题转化为一系列小问题来求解的思想
? ?为将来学习C++,数据结构,C#,java打下良好的基础
? ?
? ?4、常见问题答疑
? ? ?1、学习java为什么建议先学C语言
? ? ?a)学习C就是学java,因为C语言至少80%的语法知识都被
? ? ? ?java继承过来了。
? ? ?b)C是面向过程语言的代表,学好C有助于学习java中面向
? ? ? ?对象的思想
? ? ?c)学好C中的指针是理解java中引用的基础!如果不懂指针
? ? ? ?就不可能对java中的引用由深刻的理解,而引用是java中
? ? ? ?一个最基本但又十分重要的概念。
? ? ?2、没学过计算机专业课程能够学懂C语言
? ? ? 有郝斌老师在怕什么?
? ? ?3、英语和数学不好能学好C么?
? ? ? ? 如果懂更好,如果不懂不影响对其的学习。数学知识只有在你
? ? ? ? 研究高深算法的时候才需要。
? ? ?
? ?5、课程计划
? ?共23讲
? ? ? C语言简介
? ? ? 第一讲 ? 基本编程知识 ? ? 1讲
? ? ? 第二讲 ? 数据类型 ? ? ? ? 1讲
? ? ? 第三讲 ? 运算符和表达式 ? 1讲
? ? ? 第四讲 ? 流程控制 ? ? ? ? 4讲
? ? ? 第五讲 ? 函数 ? ? ? ? ? ? 2讲
? ? ? 第六讲 ? 数组 ? ? ? ? ? ? 1讲
? ? ? 第七讲 ? 指针 ? ? ? ? ? ? 4讲
? ? ? 第八讲 ? 变量的作用域和存储方式 ? ? 1讲
? ? ? 第九讲 ? 扩展数据类型 ? ? ? ? ? ? ?1讲
? ? ? 第十讲 ? 专题:
? ? ? ? ? ? ? ? ? ? 字符串的处理 ? ? ? ? 1讲
? ? ? ? ? ? ? ? ? ? 进制转换 ? ? ? ? ? ? 1讲
? ? ? ? ? ? ? ? ? ? 补码 ? ? ? ? ? ? ? ? 1讲
? ? ? ? ? ? ? ? ? ? 动态内存分配 ? ? ? ? 1讲
? ? ? ? ? ? ? ? ? ? 综合应用:链表的使用 ?2讲
? ?
? ?6、举例子:一元二次方程
C语言编程预备知识
? ?1、cpu 内存条 硬盘 显卡 主板 显示器之间的关系
? ?
? ?2、HelloWorld程序如何运行起来的
? ?
? ?3、什么是数据类型
? ? ? 编程受限就要考虑数据,怎样去保存它,就和数学上的数字一样
? ? ? 基本数据类型:
? ? ? ? ?整数:
? ? ? ? ?整型int 4 ?短整型short int 2, 长整型long int 8
? ? ? ? ?【浮点数(计算机内不能定点存储)】实数
? ? ? ? ?单精度浮点数float 4
? ? ? ? ?双精度浮点数double 8
? ? ? ? ?字符
? ? ? ? ?char
? ? ? 复合类型数据:(把基本类型复合起来)
? ? ? ?结构体
? ? ? ?枚举
? ? ? ?共用体
? ?
? ?4、什么是变量
? ? ? 方便找到一个和空闲内存单元一一对应的代码。
? ? ? 避免了程序员自己去找空闲单元的编号,由操作
? ? ? 系统完成。
? ? ? 变量的本质就是内存中的一段存储空间。
? ?
? ?5、cpu 内存条 VC6 操作系统之间的关系
? ? ? VC6向操作系统请求在内存中开辟一段内存,VC在使用这些内存
? ? ? 完成程序运行
? ?
? ?6、变量为什么要初始化
? ? ? 所谓初始化就是赋值的意思。那个很大的值其实是填充字很大
? ? ? 真实的值是随机值,是上一个软件使用过遗留下的,这个很大
? ? ? 的填充值就是为了提醒你这个值未被初始化。
? ?
? ?7、如何定义变量
? ?
? ?8、什么是进制
? ?
? ?9、常量在C语言中是如何表示的
? ?
? 10、常量是以什么样的二进制代码存储在计算机中的 ?
tips:
? ?1、html是借助于浏览器运行的
? ?2、C语言编写好的代码是借助于VC6运行的
? ?3、要想改变dos框的属性,右键单击标题栏
? ?4、机器语言速度最快,最慢高级语言,C又比java,C#快
? ?5、Basic在计算机中有简化的意思
? ?6、B语言写出了世界上第一个操作系统UNIX,光盘就有十几张很大
? ? ?主要用在大型机、商务机。因为其稳定,不可能用Windows,因
? ? ?为容易挂,不稳定。
? ?7、B语言的创始人的同事扩充了B得到了C语言并且用此写了UNIX第五版
? ? ? 这个系统流行了起来所以C语言也流行了起来。UNIX开源的,你要改
? ? ? 就要学习C语言。
? ?8、C语言中必学的是函数和指针。94年C99标准一直用到今天
? ?9、金山公司一直最挣钱的就是WPS。政府订购。他的一个强大功能是可以
? ? ?转成pdf格式的,microoffice没有此功能。
? 10、WPS安装包很小,因为它是用C语言写的内核。
? 11、三大操作系统windows(内核用C外壳用C++),unix和linux都是用
? ?C写的。因为它很快。硬件由操作系统控制。以前在dos下可以直接
? ?控制硬件,现在必须通过操作系统。
? 12、C可以访问硬件,指针。java没有指针。
? 13、招聘现在基本分三块:c/c++,java,c#.前者工资最高。
? 14、蠕虫病毒,C语言有个gets()函数,他是向硬盘写东西,无长度限制
? ?后来就改用fgets()有了限制,这样就不上了漏洞。
? 15、世界上绝大多数病毒都只能破换软件,只有一个能破换硬件的。
? 16、也可以用C语言编一个木马,它是背地里运行的,慢慢地就死机了
? 17、学数据结构最好用C语言学习
? 18、入门最基本的方法就是C语言入手。
? ?当你成为C语言的高手,那么你就很容易进入到操作系统的平台里面去;
? ?当你进入到操作系统的平台里面去实际做程序时,就会懂得进行调试;
? ?当你懂得调试的时候,你就会发现能轻而易举地了解整个平台的架构。
? ?这时候,计算机基本上一切都在你的掌握之中了,没有什么东西能逃得
? ?出你的手掌心。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -----《编程箴言》梁肇新,超级解霸作者
? 19、王爽写的汇编的入门书也不错 ??
? 20、C语言32个关键字作为保留。不能重做其他定义。 ? ?
? 21、哲学是你对于世界的思考,数学又是其他一切学科的计算基础。
? 22、函数可以体现出面向对象和面向过程的区别。
? 23,任何语言的流程都是一样的。?
? 24、动态内存分配学过之后才能理解数据结构。 ??
? 25、VC6完全兼容C,所以你就选C++ Source File
? 26、先把硬盘上的数据存放在内存条上然后cpu在处理,因为它不能
? ?直接处理硬盘数据。
? 27、主板就相当于为大家提供了一个怎样互相配合的环境
? 28、点感叹号的那个标志是运行.exe,这个是有cpu运行的。所有的运行都是cpu
? 29、在VC6中输入的字符和在记事本中是无区别的,通过编译链接产生exe
? 30、win98 winme是可以直接控制硬件的(编程序)。2000以后就只能操作系统控制
? 31、C的一个核心思想就是不限制程序员编写他想编写的内容。
? 32、C里面是没有这样一个数据类型来直接存放字符串的,C++和java都有
? 33、出错的位置和原因不一定就是真的,有可能在上下行找
? 34、我们硬件上的状态肯定是0、1不可能存在第三种状态,重启就是全0.
? 35、内存释放是指使用权限被收回
? 36、软件在运行期间,该软件所占空间不再分配给其他软件,当软件运行完毕
? ?之后,操作系统将收回该内存空间,以便在分配给其他软件使用。