3.基本数据类型
基本数据类型
常量
-
定义:程序运行时其值不能改变的量(即常数)
-
分类:符号常量:用标识符代表常量
定义格式:#define 符号常量 常量 例子:pi 3.14
直接常量:
整型常量(整常数)
实型常量(实数或浮点数)
字符常量
字符串常量
# 整型常量(整常数)
三种形式:十进制整数:由数字0-9和正负号表示
八进制整数:由数字0开头 (0-7)
十六进制整数:由0x开头 (0-9,A-F或a-f)
# 实型常量(实数或浮点数)
表示形式:十进制小数形式:0.2 (.2 , 2. 也是实型常量,2是整型常量)条件: 1,有点;2,至少一边有数字
指数形式:1.2E-3 表示1.2✖10的-3次方 (规定:E或e两边都要有数; 右边必须是整数)
# 字符常量
定义:用单引号括起来的单个普通字符或转义字符
常规字符:例如:'A','2','#'等
转义字符:由一个反斜杠“\”后跟规定字符构成
# 字符串常量
定义:用双引号括起来的字符序列
存储:每个字符串尾自动加一个'\0'作为字符串结束标志
'c' 'h' 'i' 'n' 'a' '\0'
'a'和"a"区别:'a':字符常量;"a"字符串常量;显示:'a'=a ; "a"=a\0
ASCLL就是十进制数据
a —> 97 ; A —> 65
printf("ABCD\tEF\bGH\n"); # \t八个占位 ; \b把左侧字符删掉 ; \n换行
ABCD EGH
printf("\\123\\\n"); # 第一个\是转义字符的开始 ;\\只输出一个\
\123\
printf("\'1234\'\t5678\n");
'1234' 5678
变量
概念:是指在程序运行期间值可以发生变化的量。
作用:变量是一个存储数据的容器,即存储单元,它的功能就是用来存放程序中需要处理的数据。
变量的基本操作:
1,赋值
2,取值
变量的命名:遵守c语言标识符的命名规则。
变量的使用原则:先定义后使用。
变量定义的语句的一般形式为:类型标识符 变量名;
# 整型变量
占节数随机器不同而不同,一般占一个机器字
short(2B)<=int<=long(4B)
可用sizeof(类型标识符)测量
# 实型变量
float:占4字节
double:占8字节
# 字符型常量
字符变量存放字符ASCII码
char与int数据间可进行算术运算
# 习题
float f=24.56
printf("%f\n",f);
%f规定六位小数 ,结果显示必须为六位
结果:24.560000
char c1='A',c2=100;
printf("%d,%c\n",c1,c2); # 65,d
c1=c1+32;
c2=c2-32
printf("%c,%d\n",c1,c2); # a,68
#define PRICE 12.5 宏定义
main()
{ int num=3; 变量定义
float total; 变量定义
char ch1,ch2='D'; 变量定义
total=num*PRICE;
ch1=ch2-'A'+'a'
printf("total=%f,ch1=%c\n",total,ch1); 输出结果
}
%d:十进制
%f:六位小数
%c:字符原型
%0:八进制
%x:十六进制
A=65
d=100
数据类型转换
强制类型转换符
形式:(类型名)表达式
(int)2.2
(int)5.5/(int)2.5
自动转换
设char w;int x;float y;double z; ,则表达式
w*x+z-y的值的类型是: double
运算符和表达式
算术运算符和算术表达式
基本算术运算符:+ - * / %
结合方向:从左向右
优先级:+ - —> * / % —> + -
说明:"-"作为单目运算符时,右结合性 2+(-3)
a/b: a,b均整数,结果也是整数 ; a,b有实型,结果也是实型
赋值运算符和其表达式
1.赋值运算符:
2.赋值表达式:变量=表达式
例如:x=5
x+5=x+5
4.优先级:仅高于逗号运算符
5.结合性:自右向左
说明:
赋值表达式尾部加上分号,构成赋值语句,例如:y=x+10;
6.复合赋值运算符:+=,-=,*=,/=,%=
优先级:仅高于逗号运算符
结合性:自右向左
a+=2;等效于a=a+2;
a-=2;等效于a=a-2;
a=2;等效于a=a2;
自增自减运算
运算符:自增(++)、自减(--)
作用:自增运算使单个变量的值增1,自减运算使单个变量的值减1。
用法与运算规则:
※前置运算:+ + i ,- - i
先增减、后运算
※后置运算:i + + , i - -
先运算,后增减
逗号运算符和表达式
形式:表达式1,表达式2,......表达式n
结合性:从左向右
优先级:最低
逗号表达式的值:等于表达式n的值
逗号功能:运算符或分隔符
关系运算符和表达式
关系运算符
种类:< <= == >= > !=
结合方向:自左向右
优先级别:< <= > >= 优先级6(高);== != 优先级7(底)
关系表达式的值:是逻辑值“真”或“假”,用1和0表示
逻辑运算符和表达式
逻辑运算符种类:!(非) &&(与) ||(或)
逻辑运算真值表:
注:C语言中,运算量:0表示假,非0表示真
运算结果:0表示假,1表示真
与:有假为假;或:有真为真
优先级:! && ||
短路特性:
逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符
条件运算符与表达式
一般形式:expr1? expr2: expr3
执行过程:expr执行为真则执行expr2,为假则执行expr3
优先级:13
条件运算符可嵌套
结合方向:自右向左
数据输入与输出
C语言无I/O语句,I/O操作由函数实现
include <stdio.h>
数据输出:
(1)字符输出函数
格式:putchar(c)
参数:c为字符常量,变量或表达式
功能:把字符c输出到显示器上
(2)格式输出函数
格式:printf(“格式控制串”,输出表)
功能:按指定格式向显示器输出数据
输出表:要输出的数据(可以没有,多个时以 “,” 分隔)
格式控制串:包含两种信息
格式说明:%[修饰符]格式字符,用于指定输出格式
普通字符或转义序列:原样输出
格式字符
说明:格式字符要用小写
格式字符与输出项个数应相同,按先后顺序一一对应
输出转换:格式字符与输出项类型不一致,自动按指定格式输出
补充:
说明:输出右对齐,左补空格;指定小于实际,原样输出
说明:%m.nf ;m为数据总长,n为小数位,实际>n则四舍五入,实际<n则补零
说明:输出格式少于输出项,多余的输出项将不输出
数据输入
(1)字符输入函数
格式:getchar()
功能:从键盘读一字符
(2)格式输入函数
格式:scanf(“格式控制串”,地址表)
功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束。
地址表:变量的地址,常用取地址运算符&
输入分隔符的指定:
一般以空格或回车键作为分隔符
其他字符做分隔符:格式串中两个格式符间字符
交换语句例子:t=a;a=b;b=t;
字符前不能有空格,否则接收到的是空格!