C语言学习与总结---第三章:顺序程序设计[01]
顺序程序设计[01]
3.1 数据的表现形式及其运算
3.1.1 常量和变量
常量:在程序运行过程中,其值不能被改变的量。例如
整型 100,125,-100,0
实型
小数形式:3.14,0.125,-3.789
指数形式:12.3e3,3.57e-2
字符型
普通字符:‘a’,‘b’,‘A’,‘#’
转义字符:‘\n’,‘\t’,‘\101’,‘\x1B’
字符串 “a”,“ab”,“1232”
十进制 4123 = 4103 + 1102 + 2101 + 3100
二进制 ‘\101’:182 + 081 + 1*80 = 65
八进制 ‘\x1B’: 1161 + 11160 = 27
十六进制 10–A 11–B 12–C 13–D 14–E 15—F
符号常量:用一个标识符代表一个常量,例如在下面程序中
#define PRICE 30
#include <stdio.h>
int main()
{
int num, total;
num = 10;
total = num * PRICE;
printf(″total = %d\n″, total);
return 0;
}
若再用赋值语句给PRICE赋值就是错误的。
优势:
(1) 规范编程时不提倡使用很多常数
(2) 易于修改,一改全改
变量代表内存中具有特定属性的一个存储单元,它用来存放数据,这就是变量的值,在程序运行期间,这些值是可以改变的。
变量
int a = 3, b, c = 5;
常变量(与符号常量不同)
const int a = 3;
标识符:用来对符号常量、变量、函数、数组、类型等数据对象命名的有效字符序列。例如
sum, _total, month, Student_name,lotus_1_2_3
规定:标识符只能由字母、数字和下划线三种字符组成,且第一个字符不能为数字。
3.1.2 数据类型
基本类型:整型、字符型、浮点型。
3.1.3 整型数据
(1)整型数据可分为:
数据类型 | 关键字表示 | 数据类型 | 关键字表示 |
---|---|---|---|
基本整型 | int | 有/无符号 | signed(默认)/unsigned |
短整型 | short int或short | 长整型 | ong int或long |
双长整型 | long long int或long long | ||
有符号基本整型 | [signed] int | 无符号基本整型 | unsigned int |
有符号短整型 | [signed] short [int] | 无符号短整型 | unsigned short [int] |
有符号长整型 | [signed] long [int] | 无符号长整型 | unsigned long [int] |
有符号双长整型 | [signed] long long [int] | 无符号双长整型 | unsigned long long [int] |
(2)数值的表示
数值是以补码表示的
原码:最高位为符号位,其余位为该数的二进制表示。1表示负数,0表示正数(会出现+0和-0)。例如
带符号位的四位二进制数1010:最高位为1,表示这是一个负数,010转十进制为2,所以二进制1010表示-2。(注意和不带符号位的二进制加以区别)
反码:正数的反码是其原码,负数的反码是其原码除符号位外,其余按位取反。例如
3的带符号位的四位二进制为0011,则
3的原码:0011
3的反码:0011
-3的原码:1011
-3的反码:1100
补码:正数的补码等于其原码,负数的补码等于其反码+1.
另:负数的补码等于其原码自低位向高位,尾数的第一个1及其右边的0保持不变,左边的各位按位取反。
注:原码不能做正数和负数的相加,还会出现+0和-0;反码不能做两个负数的相加;
计算机存储数据的单位:位(二进制位,0和1)、字节(8个二进制位)
3.1.4 字符型数据
一个字符型数据在内存中占一个字节
ASCII码
字符 | ASCII码 |
---|---|
‘A’-‘z’ | 65-90 |
‘a’-‘z’ | 97-122 |
‘0’-‘9’ | 48-57 |
3.1.5 浮点型数据
单精度型(float)
双精度型(double)
长双精度型(long double)
浮点型数据是按照指数形式存储的系统把一个浮点型数据分成小数部分和指数部分,分别存放。例如
小数部分占的位越多,有效数字就越多,精度也就越高。指数部分占的位越多,表示的数值范围就越大。
3.2 运算符和表达式
3.2.1 C语言运算符
名称 | 符号 | 名称 | 符号 |
---|---|---|---|
算术运算符 | + - * / % ++ – | 关系运算符 | > < == >= <= != |
逻辑运算符 | !&& // | 位运算符 | << >> ~ |
赋值运算符 | =及其扩展赋值运算符 | 条件运算符 | ?: |
逗号运算符 | , | 指针运算符 | *和& |
求字节数运算符 | sizeof | 强制类型转换运算符 | (类型) |
成员运算符 | .-> | 下标运算符 | [] |
其他 | 如函数调用运算符() |
注:逻辑运算符应是!、&&、||、由于编辑器问题,上表用//代替
3.2.2算数运算符
符号 | 含义 | 符号 | 含义 |
---|---|---|---|
+ | 加法运算符,或正值运算符 | - | 减法运算符,或负值运算符 |
* | 乘法运算符 | / | 除法运算符 |
% | 模运算符,或称求余运算符 |
3.2.3 自增、自减运算符
符号 | 含义 |
---|---|
++i | 在使用i之前,先使i的值加1 |
i++ | 在使用i之后,使i的值加1 |
–i | 在使用i之前,先使i的值减1 |
i– | 在使用i之后,使i的值减1 |
i++与++i的区别:
++i是先执行i=i+1后,再使用i的值。
i++是先使用i的值后,再执行i=i+1。
注:自增、自减运算符,只能用于变量,而不能用于常量或表达式。
例如,5++、(a+b)++:不合法
3.2.4算术表达式和运算符的优先级与结合性
用算术运算符和括号将运算对象连接起来,得到的符合C语法规则的式子,称为C算术表达式。运算对象包括常量、变量、函数等。
优先级:由高到低 结合性:从左到右
3.2.5混合运算
整型、字符型、浮点型可以混合运算不同类型的数据先转换成同一类型,然后进行运算
注:
横向:必定的转换
纵向:不同类型时的转换方向
3.2.6 强制类型转换运算符
将一个表达式转换成所需类型。一般形式:
(类型名)(表达式)
例如,
运算 | 含义 |
---|---|
(double)a | 将a的值转换成double型 |
(int)(x+y) | 将x+y的值转换成整型 |
(float)(5%3) | 将5%3的值转换成float型 |
(int)x+y | 将x的值转换成整型,再与y相加 |
上一篇: Oracle数据库表结构对比
下一篇: 第三章 前端vue的编写