C语言复习笔记1
一、数据类型、运算符与表达式 1.常量与变量 (1)常量分为:整型常量、实型常量、字符常量、字符串常量和符号常量。如:15是整型常量,3.14159是实型常量,‘a’是字符常量,"abc123"是字符串常量. (2)变量是指在程序运行过程中其值可以改变的量. 2.整型常量 (1)三种形式: 十进制:以非0开始的数,数码取值范围是0~9,可以是正数、负数,如25、-36、+23等。 八进制:以0开始的数,数码取值为0~7,如037、0123等。 十六进制:以0x或0X开始的数,数码取值为0~9、A~F或a~f,如0x2a、0Xad、0x123等。 可以在一个整型常数的后面添加一个L或l字母,来说明该数是长整型数,如25L、037l、0x3dl等。 (2)分类: 基本型:以int表示,在内存中占2个字节。 短整型:以short int或short表示。 长整型:以long int或long表示。 无符号型:以unsigned表示。 无符号基本型:类型说明符为unsigned int或unsigned。 无符号短整型:类型说明符为unsigned short。 无符号长整型:类型说明符为unsigned long。 3.实型常量与变量 (1)常量 表示方式一:如1.23、-23.46、0.0、.234、223.等都是合法的实数。 表示方式二:在C语言中,用“e”或“E”后跟一个整数来表示以10为底的幂。如1.23e-2、345E+3、3.5e2等都是合法的指数形式。 使用指数形式注意点: 1)“e”或 “E”前后必须有数,并且“e”或 “E”的后面必须是整数。 2)“e”或 “E”与其前后的数字之间不允许有空格存在。 (2)变量 单精度浮点型:以float表示,在内存中占4个字节。 双精度浮点型:以double表示,在内存中占8个字节。 更高精度浮点型:以long double表示,在内存中占16个字节。 4.字符常量与变量 (1)字符常量 字符常量是用单引号括起来的一个字符。如:‘a’、‘A’、’=’、’+’、‘1’ (2)转义字符 5.字符串常量 字符串常量使用英文双引号限定的字符序列。 6.符号常量 二、运算符 1.自增自减运算符 2.逗号表达式 3.位运算符 (1)& 取各个运算数字的补码后再进行运算 (2)| 将运算的数字取二进制补码后按位或 (3)~ 单目运算符,先将操作数转换为二进制补码形式,然后各个二进制位都取其反值。 (4)^ 先将两个操作数转换为二进制补码形式,然后将两个操作数对应的二进制位进行异或运算。 异或运算:相异为1,相同为0 按位“异或”运算可以实现在不使用第三个变量的前提下,“交换”两个变量的值。 (5)<<左移运算符 从结果可以看出将操作数左移1位,相当于该数乘以2,左移2位相当于该数乘以2的2次方 (6)>> 三、变量地址和指针型变量 1.内存地址 一个变量实质上代表了“内存中的某个存储单元”,最基本的存储单位是字节,而且每个字节都有一个编号,这个编号就称为内存地址。 2.变量的地址 在VC++中short int型数据占2字节,int型数据和float型数据占4字节,double型数据占8字节,char型数据占1字节,指针变量占4字节。 程序中对变量进行存取操作,实际上就是对该变量所在的存储单元进行操作,这种直接按变量的地址存取变量值的方式称为“直接存取”方式。 3.指针型变量 一种特殊的变量,这种变量只是用来存放内存地址的。 int是指针变量p和q的基类型。或者我们可以通俗地称p和q是两个整型指针,而且p和q属于一级指针(即指针变量p和q存放的是不同变量的地址) “float **r;”,其中r是浮点型指针变量,属于二级指针,也就是说指针变量r所指向的是一个一级指针变量,这个一级指针变量所指向的是一个float型的变量。 定义了一个指针型变量p,它所指的存储单元所存放的数据类型不定,称为无类型指针。 4.给指针变量赋值 (1)& 注意: 1)求地址运算符“&”的作用对象只能是变量或后面要讲到的数组,而不能是常量或表达式. 2)求地址运算符“&”的运算对象的类型必须与指针变量的基类型相同. 5.通过指针变量获得地址值 可以通过赋值运算,把一个指针变量中的地址值赋给另一个同类型的指针变量,从而使两个指针指向同一地址。 空指针的含义是:指针p并不是指向地址为0的存储单元,而是不指向任何存储单元。 易混淆:
|