变量和常量是程序处理的两种基本数据对象
变量
变量的意义就是确定目标并提供存放的空间。
变量的命名规则
1.变量名只能是英文字母(A-Z,a-z)和数字(0-9)或者下划线 _ 组成。
2.第一个字母必须是字母或者下划线开头。
3.变量名区分大小写。
4.不能使用关键字来命名。
-关键字列表
基本数据类型
1.char
-字符型,占用一个字节。
2.int
-整型,通常反映了所用机器语言中整数的最自然长度。
3.float
-单精度浮点型。
4.double
-双精度浮点型。
声明变量的语法
数据类型 变量名
-int a
-char b
-float c
-double d
#include<stdio.h>
#include<stdlib.h>
int main(){
int a;
char b;
float c;
double d;
a=520;
b='F';
c=3.14;
d=3.141592653;
printf("表示将数值a加到它所在的位置:%d\n",a);
printf("表示将字符b加到它所在的位置:%c\n",b);
printf("表示精确到两位的浮点数,圆周率为:%.2f\n",c);
printf("表示整个数据占11位,现取九位,圆周率精确到小数点后九位是:%11.9f\n",d);
system("pause");
return 0;
}
常量
1.整型常量:520、1314、123
2.实型常量:3.14、5.12、8.97
3.字符常量:
-普通字符:‘L’,‘O’,‘v’,‘e’
-转义字符:’\n’,’\t’,’\b’
4.字符串常量:“demo”
字符:‘A’,‘b’
字符串:‘Hello world’ 编译器在编译的时候会给他加上一个转义字符 ‘\0’ 空字符表示字符串的结束,故这个字符串有12个字符。
5.符号常量:使用前必须先定义
-定义符号常量 (宏定义)
格式:#define 标识符 常量
例如:
#define MAX "100"
标识符(identifier)【有意思的是标识符念作biao zhi fu】
1.标识符只能是英文字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成。
2.必须以字母或下划线开头。
3.标识符区分大小写。
4.不能使用关键字来命名标识符。
基本类型
整数类型:
-short int
-int
-long int
-long long int
浮点数类型:
-float
-double
-long double
字符类型:
-char
布尔类型:
-_Bool
枚举类型:
-enum
sizeof运算符
sizeof运算符用于获得数据类型或表达式的长度
-sizeof(object);//sizeof(对象);
-sizeof(type_name);//sizeof(类型);
-sizeof object;//sizeof 对象;
#include<stdio.h>
#include<stdlib.h>
#include <stdbool.h>
int main(){
int i;
char j;
float k;
i=123;
j='c';
k=3.14;
printf("size of int is %d\n",sizeof(int));
printf("size of i is %d\n",sizeof(i));
printf("size of char is %d\n",sizeof(char));
printf("size of j is %d\n",sizeof(j));
printf("size of float is %d\n",sizeof(float));
printf("size of k is %d\n",sizeof(k));
//接下来让我们看看基本数据类型所占的字符的大小
printf("基本数据类型所占字符大小:\n");
printf("size of int is %d\n",sizeof(int));
printf("size of short is %d\n",sizeof(short));
printf("size of long is %d\n",sizeof(long));
printf("size of long long is %d\n",sizeof(long long));
printf("size of char is %d\n",sizeof(char));
printf("size of _Bool is %d\n",sizeof(_Bool));//由于C编译不支持布尔型,导入头文件#include <stdbool.h>即可
printf("size of float is %d\n",sizeof(float));
printf("size of double is %d\n",sizeof(double));
printf("size of long double is %d\n",sizeof(long double));
system("pause");
return 0;
}
【该例遇到了两个问题:
1.输入 _Bool 时显示未定义标识符 Bool 。解决办法:导入头文件#include <stdbool.h>
2.运行结果中文显示乱码。 解决办法:VsCode编写C语言时默认代码格式位utf-8,右下角将代码格式通过编码保存味gbk即可。
】
取值范围
比特位:CPU能读懂的最小单位 -bit b
字节:内存机构的最小寻址单位 -Byte B
1Byte==8bit
1个字节可以表示多大的数:11111111=255
进制
二进制——>十进制:2的n次方减一(n为1的个数)
符号位
signed和unsigned
signed表示该符号位可以存放带符号的数据。
unsigned表示该符号位存放不带符号的数据。
默认情况下为signed
-存放signed类型的存储单元中,左边第一位表示符号位。如果该位为0,表示该整数是一个整数,如果该位为1,表示该整数是一个负数。
-一个32位的整型变量,除去左边第一位符号位,剩下表示值的只有31个比特位。
-事实上计算机是用补码的形式来存放整数的值。
补码
1正数的补码是该数的二进制形式
2.负数的补码需要通过以下几步获得:
-先取得该数得绝对值的二进制形式。
-再将第一步所得的值按位取反。
-最后将第二步的值加1.
最大值和最小值
虽然补码看起来很麻烦,但是既然使用它就说明他还是有好处的。
基本数据类型的取值范围