c语言代码解释0x11,《C语言程序设计》经典解读.ppt

《C语言程序设计》经典解读

运算结果的类型也很重要 A>b>c会如何? 这页得重做,突出计算效果。a == 'Y' && 'y' , 和表达式的整体定义 比较有趣的是,在面向对象编程中,评价一个程序好坏的标准之一就是看其有没有switch语句。一般认为,用得越少越好。当然在结构化程序设计中,switch是必不可少的。 结构(Structure)的内存占用 一个结构变量的成员变量在内存中是相邻的 整个结构变量的将占用多少内存呢? 是所有成员变量的内存总和吗? 我们可以用sizeof来获得结构的大小 事实上,结构所占的实际空间一般是按照机器字长对齐的 不同的编译器、不同的平台,对齐方式会有变化,不过一般的编译器都可以设定按照多大对齐 sizeof到底是什么? 它是一个C语言的关键字,并不是函数 可以用两种形式使用 sizeof(表达式) 一般都使用sizeof(变量名) sizeof(类型) 求出的结果为表达式值所属类型或者类型占用的字节数 struct类型的特点 一个普通的类型 所以可以定义该类型的变量、数组、指针…… 它的成员可以是任意类型 基本类型、数组、指针、结构…… 可以做函数的参数类型和返回值类型 struct类型的变量 可以互相赋值 所以做为函数的参数时,是传值调用 可以& 不可能参与运算 它的成员个个也都是如假包换的变量 面向对象和数据库是struct的思想的发展 结构指针 struct point{int x;int y;}; struct point pt;struct point* ppt; ppt = &pt; 怎样通过ppt访问pt的成员? (*ppt).x = 0; ppt->x = 0;/* 更常用 */ 思考题 struct point{int x;int y;};struct rect{struct point pt1;struct point pt2;}; struct rect rt, *rp=&rt; 下面表达式哪些合法? rt.pt1.x (*rp).pt1.x rp->pt1.x rt->pt1.x 上面合法的表达式都是等价的吗? 再思考 下面的结构什么意思? struct something{struct something obj1;struct something obj2;}; 下面的的呢? struct something{char name[10];struct something* pOtherObj;}; 定义自己的类型名 struct person student; /* It works */ person student; /* Can this work? */ struct tagPerson{……;……;};typedef struct tagPerson person; person student; /* It works! */ typedef为一种类型定义一个同义词 C语言被分类位高级语言,但实际上它是一种介于高级语言和低级语言之间的语言。 计算机科学中很多事物都难以进行准确的分类和定义,甚至根本没有定义。所以学习中要注意理解,而不是记忆。 “ANSI C”标准的发布是C语言成熟的标志。教科书就是以ANSI C为依据编写的。 无从考证究竟有多少软件用C语言编写。但我们赖以生存的软件中确实大多数都是用C语言编写。 目前新开发的软件中,尤其在Windows上,使用C语言的越来越少了,其小弟C++、Java和C#正如火如荼。正确地学好C语言,是学习这些流行语言的基础。 使用输入设备输入数字(例如2和7)及输入指令ADD,指令和数字被临时存放在内存里。计算机取回数字和指令,然后执行加法来处理数字,结果9被临时存放在内存。该结果可以从内存输出或被存储起来。计算机使用打印机或监视器屏幕作为输出设备,输出处理结果。当数据不需要立即处理时,它们被存储到磁盘上。 如果计算机是乐队,那么程序员就是指挥家,程序就是乐谱。 如果计算机是军队,那么程序员就是总司令,程序就是作战计划。 这只是一个简单描述。在很多后续课程(如:计算机组成原理、编译原理)中,将更详细、深入地学习这个过程。 程序设计语言是人与计算机进行交流的语言,有很多种,分别适合做不同的事情。现在还只能人主动学计算机的语言,做不到计算机学会人的语言。当计算机懂了人语,就几乎不再需要编程,想让计算机干什么,尽管对着它说好了。 本章首先对C语言做简要介绍。目的是通过实际的程序向读者介绍C语言的本质要素,而不是一下子就陷入到具体细节、规则及例外情况中去。 各种语言的教科书都习惯上用“Hello, World”作为第一个程序范例,从而向读者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值