c语言基础知识(vc)-2010
本章主要内容 本章介绍C语言的基础,包括: 数据类型 运算符和表达式 均是程序设计的基本知识 为什么讨论这些知识? 例如: 【例2.1】计算圆的面积,半径为 5 cm。 程序如下: 分析: 计算机操作处理时,要完成以下工作: 数据r和area是变量,在内存中需要给半径 r 和运算结果 area 开辟存储空间,存放它们的值。应该留多大的地方来存放它们的值? 数据 5 和 3.14 是常量与 r 、area 不同,它们在编写程序时就是确定的值,在运算过程中不会改变。这样的数计算机怎么处理? 对整数 5 和小数3.14 ,计算机存放时是否有区别? C语言的数据类型 C数据类型 2.1.1 整型数据 1.整型数据的类型 基本整型数据类型 int ,分配 4 Byte 短整型数据类型short int,分配 2 Byte 长整型数据类型long int,分配 4 Byte 整型数据均以二进制补码形式存储 计算机中正、负数的表示 例如:109 =(1101101)2 要区别:+109 和 -109 方法是:将符号也数码化 即:正的符号 +用 0 表示 负的符号 -用 1 表示 问题:计算机计算复杂化 例如计算: (-19)+(+22) 1001 0011 + 0001 0110 原码、反码和补码 正数:原码、反码、补码相同 符号位为0,数值为对应的二进制数。 +109 用补码计算 例如计算: (-19)+(+22) 1110 1101 + 0001 0110= 0000 0011 (0000 0011)2= 3 2. 有符号和无符号整型数据类型 有符号的整型数据类型 int 无符号的整型数据类型 unsigned int 区别是将最高位看作符号位还是数据位 例如: #include void main( ) { short int m; m= 65448;// 1111 1111 1010 1000 printf("\nm=%hd\n",m); printf("m=%hu\n",m); } 整型数据的类型及规定 方括号表示可选项 int 分配4 Byte,long分配4 Byte 2.1.2 实型数据 1.实型数据的类型 单精度实型数据类型 float,分配4 Byte 双精度实型数据类型 double,分配 8 Byte 2.实型数据的存储 实型数据的类型及规定 C标准并未具体规定各种实型数据所占字节数,也不规定具体小数和指数部分的位数。 一般而言,小数部分位数多,数据表示的有效数字多,精度就高;而指数部分位数多,则表示的数据范围更大。 2.1.3 字符型数据 字符型数据类型为char,分配 1 Byte 字符型数据是指字母、数字、各种符号等用ASCII值表示的字符 例如 'a' 是一个char类型数据,称作字符常量,存储: 2.2 常量、变量与标准函数 主要内容: 常量 变量 标准库函数 2.2.1 常量 在程序运行的过程中值保持不变的量 1.整型常量 十进制:0~9 八进制:0~7,以 0开头 十六进制:0~9,A~F/a~f,以 0x或 0X 开头 1. 整型常量 整型常量的类型: 根据值大小默认类型 整型常量后面加l或L,则认为是long int型 例如:123 123L、032、432l、0x100 2. 实型常量 十进制形式 1.0 1. +12.0 -12.0 0.0 指数形式 1e3 1.8e-3 -123E-6 -.1E-3 3. 字符型常量 字符常量 一对单引号括起来的单个字符 例如:'a'、'A' 、'+' 、'3'、' ' 等 转义字符常量 一对单引号括起来的 \ 与规定字符组合,例如: int x=0x10;√ int y=0X10; √ char a=‘\xa2’; √ char b=‘\Xa2’; × 4. 字符串常量 用一对双引号括起来的0个或多个字符序列 例如:"ABC"、"12"、"a"、 "\n\t " "\nGood morning" 、 "" 字符串常量的长度 : 所包含的字符个数 字符串常量的存储方式: 4. 字符串常量(续) 如果反斜杠和双引号作为字符串中的有效字符,则必须使用转义字符。 例: ① C:\msdos\v6.22 → "C:\ \msdos\ \v6.22 " ② I say:"Goodbye!" → "I say:\"Goodbye!\" " 如果要表示单引号字符常量,必须用转义字符。如果要表示单引号字符串