C语言中的数据
一、常量和变量
1.常量
常量用来表示数据的值,它在程序运行期间其值是不可改变的。
常量有两种表示形式:值常量和符号常量。
<1>值常量
值常量,也称为直接常量或字面值,即直接以输入输出字面值表示。
例如:
“a”、45、2.3,’demo‘等。
值常量在程序中可以直接使用。
<2>符号常量
符号常量,也称为宏,是用一个标识符来代表一个常量。符号常量和值常量不一样,它不能直接使用,要遵循”先定义,后使用“的原则。即符号常量在使用前要先作明确的定义,然后才能在程序中代替常量使用。
2.变量
变量是在程序运行期间其值可以改变的量。变量有三个属性:变量名、变量的数据类型和变量值。
变量名说明变量的名称,变量名的命名应遵循标识符的命名规则。
变量的数据类型决定了变量值的数据类型、表现形式和分配存储空间的大小,同时也规定了对该变量能执行的操作。
变量值为变量存储的数据,通过变量名引用变量的值。
程序中要使用的变量必须”先定义,后使用“,这样做以便让系统在运行时为变量分配相应的存储单元,用以存放变量的值。
定义变量的一般形式:
数据类型说明符 变量名;
基本数据类型的类型说明符:
数据类型 | 类型说明符的简写形式 |
---|---|
基本整型 | int |
短整型 | short |
长整型 | long |
无符号整型 | unsigned |
无符号短整型 | unsigned short |
无符号长整型 | unsigned long |
单精度实型 | float |
双精度实型 | double |
字符型 | char |
例:
int num; /*整型变量*/
char c1, c2; /*字符型变量*/
float f1, f2; /*单精度实型变量*/
double area; /*双精度实型变量*/
在程序中使用变量时,变量必须要有确定的值,否则系统以一个不确定的值参与操作,因此,在定义变量时可以给变量赋一个初值,即对变量进行初始化。
例:
int x = 1,y = 2;
如果给变量x和y赋予了新的值,那么它们存储单元内原数据值就会改变。一个变量只能有一个确定的值。当变量赋予新值时,原来的值就会被新值取代。
说明:
- 允许一个数据类型说明符后定义多个类型相同的变量,各变量名之间用逗号隔开。
- 在定义变量时,类型说明符和变量名之间至少用一个空格分隔。
- 定义变量放在使用变量之前,一般放在函数体的开头部分。
- C语言允许在定义变量的同时为所需要初始化的变量赋予初值,并且可以为多个同类型的变量赋同一初值,但要分别赋给各个变量。
例:
int x = y = 10;
这是错误的。应该这样写:int x = 10, y = 10;
二、 C语言中的数据
一、整型数据
1.整型常量
整型常量就是整数。
整数有三种表示形式:十进制整数、八进制整数、十六进制整数。
<1>十进制整数
用(0~9)10个数字表示。
例如:12, 66,-78等。
<2>八进制整数、
以0开头,用(0~7)8个数字表示。
例如:014, 0101, 01777等。
<3>十六进制整数
以0X或0x开头,用(09)10个数字。AF或a~f字母表示。
例如:0xC,0x44, 0xEFFF等。
八进制和十六进制一般用于表示无符号整数。
整数又可分为基本整型、长整型、短整型、无符号整型等。
长整数用后缀”L“或”l“来表示。
例如:12L,012l,0x12l等。
无符号整数用后缀”U"或“u”表示。
例如:15U,017u,0x153等。
#include<stdio.h>
int main() {
int a = 20, b = 027, c = 0x3f;
printf("十进制:%d,%d,%d
", a, b, c);
printf("八进制:%o,%o,%o
", a, b, c);
printf("十六进制:%x,%x,%x
", a, b, c);
return 0;
}
结果:
输出时,八进制不输出前导符0,十六进制不输出前导符0x。
2.整型变量
在C语言中,整形变量分为基本整型、短整型、长整型和无符号型。无符号型又可以与前三种类型组合出无符号基本整型、无符号短整型和无符号长整型,总共有六种类型。
变量类型名 | 类型说明符 | 所占字节数 | 取值范围 |
---|---|---|---|
短整型 | short int(short) | 2 | -32768~32767 |
基本整型 | int | 4 | -2147483648~2147483647 |
长整型 | long int(long) | 4 | -2147483648~2147483647 |
无符号短整型 | unsigned short int | 2 | 0~65535 |
无符号基本整型 | unsigned int | 4 | 0~4294967295 |
无符号长整型 | unsigned long int | 4 | 0~4294967295 |
int main() {
printf("短整型占%d个字节
", sizeof(short));
printf("基本型占%d个字节
", sizeof(int));
printf("长整型占%d个字节
", sizeof(long));
printf("无符号短整型占%d个字节
", sizeof(unsigned short));
printf("无符号基本型占%d个字节
", sizeof(unsigned));
printf("无符号长整型占%d个字节
", sizeof(unsigned long));
return 0;
}
结果:
sizeof(类型说明符)
或 sizeof(常量)
其值为类型说明符指定类型数据或某变量在内存中所占的字节数。
注意:
在定义变量时,要注意不同类型的取值范围,当其值超出了最大取值范围时,就会产生“溢出”错误。
二、字符型数据
1.字符常量
字符常量用单引号括起来的单个字符来表示。
例如:‘a’, ‘A’, '+'等。都是合法的字符常量。
字符常量在计算机中是以ASCII码值存储的。因此,每个字符都有对应一个ASCII码值。
字符常量有以下特点:
- 字符常量只能用单引号括起来,不能用双引号或其他括号。
- 字符常量只能是一个字符,不能是多个字符或字符串。
- 字符常量可以是字符集中的任意字符。
在C语言中,还有一种特殊的字符常量称为“转义字符”。转义字符主要用来表示那些不可视的打印控制字符和特定的功能字符。
转义字符以反斜杠“”开头,后跟一个或几个字符。
转义字符具有特定的含义,不同于字符原有的意义。
C语言中常用的转义字符
转义字符 | 意义 | ASCII码 |
---|---|---|
换行(Newline) | 010 | |
横向跳到下一个制表位置(相当于Tab) | 009 | |
v | 竖向跳格(Vertical) | 011 |
退格(Backspace) | 008 | |
回车(Return) | 013 | |
f | 走纸换页(From Feed) | 012 |
反斜线符“” | 092 | |
` | 单引号符 | 039 |
" | 双引号符 | 034 |
a | 鸣铃报警(Alert) | 007 |