数据类型
常量
常量是指在程序运行过程中,其值不发生变化的量。常量又分为整型,实型(也称浮点型),字符型和字符串型。
整型常量,实型常量,字符型常量在编译时可以直接编入代码段的常量:例如,在字符串“你好”中,双引号中间的内容是ASCII码字符,还是汉字或者其他国家的文字等,都是字符串型常量
整型 100,125,-100,0
实型 3.14,0.125,-2.34
字符型 ‘a’ , 'p', '2' //要求只能包含一个字符
字符串型 “gh”,“jkbjk”,“jhk89”
变量
变量代表内存中具有特定属性的一个存储单源,它用来存放数据,即变量的值。这些值在程序的执行过程中是可以改变的。
变量名实际上以一个名字代表一个对应的存储单元地址。编译,链接程序时,由编译系统为每个变量名分配对应的内存地址(就是空间)从变量中取值实际上是通过变量名找到内存中存储单元的地址,并从该存储单元中读取数据。
变量的命名规则:C语言规定标识符只能由字母,数字,下划线三种字符组成,并且第一个字符必须是字母或者下划线。
编译系统认为大写字母和小写字母是不同的字符,因此C语言要求对所有用到的变量做强制定义,即“先定义,后使用”,同时在选择变量名和其他标识符时,应尽量做到”见名知意“
变量名不能与关键字同名(32个关键字)
整型数据
符号常量
定义一个整型变量时要使用关键字int ,下列例子:
#include <stdio.h>
//符号常量
#define PI 3+2
int main(){
int i=PI*2;//i就是一个整型变量
printf("i=%d\n",i);
printf("i size=%d\n",sizeof(i));//sizeof可以来计算某个变量空间大小
}
//最终的输出结果是7,原因是符号常量是直接替换的效果,因此不可以写PI=8,不进行赋值
3+2*2
#define 后面:3e不需要加分号
整型变量
这里掌握int 足以应对初试,后面高级阶段会详细讲解不同类型的变量,没有时间的友友们,可以不需要掌握,变量i是4个字节
浮点型数据
浮点型常量
表示浮点型常量的形式有两种,小数形式:0.123,指数形式:3e-3 (0.003)
注意:字母e(或者E)之前必须有数字,且e后面的指数必须为整数
浮点型变量
通过float来定义浮点型变量,f占用4个字节。
#include <stdio.h>
//符号常量
#define PI 3+2
int main(){
float i=3e-3;//i就是一个浮点型变量
printf("i=%f\n",i);
}
字符型数据
字符型常量
用单引号括起来的一个字符是字符型常量,且只能包含一个字符
例如:‘a’ 'A' '1' ' '是正确的字符型常量
各种转义字符,转义字符用来表示回车,退格功能键
\n 换行
\b 退格
\\ 反斜杠
字符数据在内存中的存储形式及其使用方法
字符型变量使用关键字char进行定义,一个字符型变量占用1个字节大小的空间。一个字符型常量存放在一个字符型变量中时,实际上并不是把该字符的字型放在内存中,而是把该字符的ASCII码值放在存储单元中。
#include <stdio.h>
//大写变小写
int main(void) {
char a='A';
printf("%c\n",a);
printf("%d\n",a);
return 0;
}
我使用的CL
对于字符型变量,无论是赋ASCII码值还是赋字符,使用%c打印输出时得到的都是字符,使用%d打印输出时得到的都是ASCII码值,将小写字母转化成大写字母时,使用ASCII中对应的(A a相差32).
’a‘是字符型常量,“a”是字符串常量,二者是不同的。
例如,如果先用语句char c定义字符型变量c,后令c="a"或者c="CHIANA",是非法的
不可以将字符型常量赋值给字符串型变量。
C语言中没有定义字符串型变量的关键字,介绍字符数组时再详细介绍如何存放字符串。