《C语言大学实用教程》第三版复习笔记
“易有太极,是生两仪,两仪生四象,四象生八卦,八卦定吉凶,吉凶生大业。”
二进制
1946年,冯诺依曼提出“冯诺依曼机”结构,计算机之父。冯诺依曼机:控制器、运算器、存储器、输入和输出设备。
机器语言->汇编语言->高级语言
20世纪60年代,贝尔实验室 ,Ken Thompson 想要玩space traval游戏,设计了UNIX系统 。Dennis M·Richie改造了B语言,设计了C语言。
C语言为编译运行语言(编辑,编译,链接,运行)
以php,javascript为例为解释语言。
java和C#为先编译,后解释,java依赖JVM(java虚拟机),C#依赖CLR(common Language Runtime)
注释方式:/* */ 或 //
|
||||
asm |
auto | break | case |
cdecl |
char |
const |
continue |
default |
do |
float |
for |
goto |
huge |
if |
interrupt |
int |
long |
near |
pascal |
register |
return |
short |
signed |
sizeof |
static |
struct |
switch |
typedef | union |
unsigned |
void |
volatile |
while |
标识符命名规则:
(1)由英文字母、数字、下划线组成,必须以英文字母或下划线开头。
(2)不允许使用关键字作为标识符的名字。
(3)风格统一,Windows应用大小写混排,UNIX使用小写加下划线。
(4)c语言区分大小写。
整型常量:十进制,八进制 (由数字0开头),十六进制(由数字0加字母x)。
长整型常量后跟l或L,无符号整型常量后跟u或,不能表示成小于0的数。
C语言中,以字母e或E来代表以10为底的指数,单精度实型常量后跟f或F,长双精度后跟l或L。
字符常量(单引号),转义字符“\”
字符串常量(双引号),‘\0’结束。
宏常量:#define PI 3.14159
枚举常量?
define与const区别
(1)const常量有数据类型,而宏常量没有数据类型。编译器对const常量会进行类型检查,而宏常量只进行字符串替换,不进行类型检查。
(2)有些集成化的调试工具可对const常量进行调试,而不能对宏常量进行调试。
用sizeof获得类型或变量的字长。char型数据和int型数据之间的相互转换不会丢失信息。一个char型变量既能以字符格式输出,也能以整型格式输出。
A-65,a-97,0-48
浮点数在内存中表示为阶码和尾数两部分。阶码所占的位数决定实数的取值范围;尾数所占的位数决定实数的精度。
根据运算符的性质分类,可分为算术运算符、关系运算符、逻辑运算符、赋值运算符、位运算符。
(1)两个整数相除的结果仍为整数,舍去小数部分的值。当其中一个操作数为实数时,则整数与实数运算结果为double型。
(2)求余运算限定参与运算的两个操作数为整数。余数的符号与被除数的符号相同。
在C语言中,用非0值表示“真”,用0值表示“假”。<,>,<=,>=的优先级高于==,!=。
只需要一个操作数为单目运算符,!优先级高于&&,&&优先级高于 ||。
空语句:只有一个分号构成的语句。getchar()和putchar(变量)
(1)函数putchar()的作用是向终端显示器屏幕输入一个字符。
(2)函数getchar()的作用是从系统隐含指定的输入设备输入一个字符,按回车键表示输入结束。
格式输入/输出 scanf(),printf()
一个面向过程的程序应由数据结构和算法组成。算法的特性:有穷性、确定性、有效性、没有输入或多个输入、有一个或多个输出。
程序测试方法可以分为静态分析和动态测试两种。黑盒测试和白盒测试。
开关语句switch
(1)switch后圆括号内表达式的值一般为整型、字符型或枚举类型
C语言提供了4种用于控制流程转移的语句:goto语句、break语句、continue语句、return语句。
结构化程序设计的基本思想
(1)采用顺序、选择、循环三种基本结构作为程序设计的基本单元,只有一个入口,一个出口,无死语句,无死循环。
(2)结构化程序设计规定,尽量不要使用多于一个的goto语句标号,同时只允许在一个“单进单出”结构内用goto语句向前跳转,不允许往回跳转。
(3)采用“自顶向下、逐步求精”和模块化方法进行结构化程序设计。
局部变量在定义时不会自动初始化。全局变量在不指定初值时自动化初始化为0。
#include两种用法:#include<filename>,#include "filename"
数组:一维数组占用字节数=数组长度*sizeof(基类型),二维数组占用字节数=第一维长度*第二维长度*sizeof(基类型)
当数组被声明为静态存储类型或外部存储类型,则在不显示给出初值的情况下,数组元素将在程序编译阶段自动初始化为0。
字符串是由若干有效字符构成且以字符‘\0’作为结束标志的一个字符序列。C语言中只提供字符数据类型,没有提供字符串数据类型,对字符串的存取可使用字符串数组来实现。一个字符型一维数组并不一定是一个字符串,只有当字符型一维数组中的最后一个元素值为‘\0’时,它才构成字符串。用字符串处理函数gets()和puts()输入\输出一个字符串。
指针:*和&
二维数组:a[i][j]=*(a[i]+j)=*(*(a+i)+j)=(*(a+i))[j]
数组、结构体、共用体都是构造函数类型,但其数据成员的组成特点不同:数组由相同数据类型的元素组成,可将相同属性的数据进行集中处理;结构体和公用体可由不同数据类型的成员组成,常用于实现对数据库的管理。