数据类型
数据类型分类
*负数是有符号数
基本数据类型
bool类型
是用true非零,false零 需引入<std book.h>
_Bool a==(宏)bool a
char类型
char值域-128~127或0~255(使用/J编译选项)
signed char值域-128~127
unsigned char值域0~255
*char的三种形式长度均为一个字节*
*使用char类型要注意防止数据超出值域*
-128补码是1000 0000
short类型
short(signed short) 长度2字节 值域-32768~32767
unsigned short长度2字节 0~65535
int类型
int(signed int) 长度4字节 值域-2147483648~2147483647
unsigned int 长度4字节 值域0~4294967295
常量
基本数据类型的常量
整型常量
常量是指在程序运行期间其数值不发生变化的数据。整型常量通常简称为整数,
整数可以是十进制数,八进制数和十六进制数。
浮点常量
浮点常量又称为实数,一般含有小数部分。
在c语言中,实数只有十进制的实数,分为单精度和双精度。实数有两种表示方法,及一般形式和指数形式。
一般形式的实数基本形式如下:
•例如,3.5,-12.5,3.1415926,[+|-]M. N
指数常量
指数形式的实数一般是由尾数部分、字母e或E和指数部分组成。当一个实数的符号为正号时,可以省略不写,其表示的一般形式如下:
•1.176e+10表示1.176*10^10
•-3.5789e-8表示-3.5789*10^(-8)
•通常表示特别大或特别小的数
字符常量
a='F'; //将70送给a
b='A'+2; //b存放的是'C'字符
u=' '+'B'; //u存放的是'b'字符
v='b'-32; //v存放的是'B'字符
它们相当于下列运算
a=70;
b=65+2;
u=32+66;
v=97-32;
•'0'在电脑看来是48
字符串常量
所谓字符串常量是指用双引号括起来的一串字符来表示的数据。
•"hello","9","李四","***@163.com"
char arr[4]={"abc"};
等价于char arr[4]={'a','b','c','\0'};
char arr[]={"abc"};
sizeof(arr)
结果
4 *这个4要看{}内有多少个字符。
标识常量
所谓标识常量是指用标识符代替常量使用的一种常量,其名称通常是一个标识符。
标识常量也叫符号常量,一般用大写英文字母的标识符。在使用之前必须预先定义。说明形式为:
#define <标识常量名称> <常量>
•#define PI 3.1415926
•#define NULL 0
变量
变量的基础
变量在程序中用变量名表示。变量名由用户根据其用途任意命名。
变量名由字母、数字、下划线组成,不能以数字开头,不能和C的关键字重名。
在程序运行时,变量占据存储空间的大小由其数据类型决定。
变量在内存空间中的首地址,称为变量的首地址。
变量的说明
变量说明的一般形式是:
<存储类型> <数据类型> <变量名>
*<存储类型>是关键词auto、register、static和extern
*<数据类型>可以是计本数据类型也可以是自定义的数据类型
变量的存储类型
auto说明的变量只能在某个程序范围内使用*局部变量*,通常在函数体内或函数中的复合语句里。(默认是随机值)
*auto int k;=int k;(auto可以省略)
register称为寄存器型,regiter变量是想将变量放入cpu的寄存器中,这样可以加快程序的运行速度
regiter变量必须是能被cpu所接受的类型。这通常意味着register变量必须是一个单个的值,并且长度应该小于或者等于整形的长度
*不能用"&"来获取register变量的地址。
*register int a=10;
算数运算符
c提供的算数运算符:+、-、/、%、++
如下:float/double不能取余
关系运算符
>,>=,<,<=,==,!=
int a=0,b=6;
a>(b-1) 结果值为0
(a+1)==b 结果值为1
往下以此类推…
逻辑运算符
! 逻辑反 *!(x==0)
&& 逻辑与 *x>0&&x<100 同真则真
|| 逻辑或 *y<10||x<10 一假则假