变量
标识符
在C语言中标识符给变量、函数、宏、结构体、类型别名等命名
标识符是有一串字符串组成(字符串:qwe,w3c,dnf,2311,……&%%¥¥),字符串未必都是标识符
1、标准:只能有字母、数字、下划线组成;
2、只能由字母和下划线开头
3、标识符不可以位关键字(关键字为系统保留,32个关键字(int,for,float))C语言中的关键字
变量的定义输出
//导入头文件,stdio.h是标准输入输出
#include
//程序从main函数开始,在main中结束
int main()
{
//int age表示定义了一个整型变量
//告诉CPU,在内存中开辟出4个字节大小空间
//int表示的是数据的类型(整型)
//age表示的是变量的名字
//变量取名时,遵循的是标识符的规则
//最好是见名知意
//整数
int age = 0; //初始化,定义变量是就给赋值了,一般会初始化为0
//赋值
age = 18;
//%d占位符,%d表示十进制数字,即将填充
//\n表示换行
printf("age = %d\n", age);
return 0;
}//大括号是main的代码块
变量的使用-定义了多个变量,初始化
#include
int main()
{
//如果要是不初始化,变量的值是随机的
//所以定义变量是最好初始化,一般为0
int age= 0;
int id= 0;
int money = 0;
//int age, id;(不建议)
//在同一代码区域不能有两个相同名字的变量
//int age= 0;
age= 18;
id= 110;
money = 1000000;
//一般在程序中空格和换行对程序执行没有影响
printf("age = %did = %dmoney = %d\n",
age,id, money);
return 0;
}
变量的输入
#include
int main()
{
int age = 0;
//age = 18;
//&取地址符
//C语言中每个语句以;结尾
scanf("%d", &age);
printf("age = %d\n", age);
return 0;
}
变量的类型
short(int)短整型2字节
int整型4字节16位系统中占2个字节
long长整型8字节32位系统中展4个字节
short<=int<=long
每一个整型变量都对应一个无符号类型
unsignedshort无符号短整型
unsigendint
unsignedlong
基本数据类型
基本类型:
整型: 短整型(short)2个字节
整型(int)4个字节,在16位系统中占2个字节
长整型 (long)8个字节,在32位系统中占4个字节
浮点型:
单精度:float
双精度:double
数据不看你怎么存,看你怎么度
字符(char):
构造类型:
数组:
结构体:
联合体(公用体):
枚举:
指针类型:
空类型:
void:
整型
short(int)%d %hd
int%d
long%ld
long%lld
unsigend int%u
unsigned long %lu
unsigned long long%llu
#include
int main()
{
short int a = 5;
int b = 5;
long c = 5;
long long d = 5765757654738372893;
unsigned int e = 5;
unsigned long f = 5;
printf("a = %hd\n", a);
printf("b = %d\n", b);
printf("c = %ld\n", c);
printf("d = %lld\n", d);
printf("e = %u\n", e);
printf("f = %lu\n", f);
return 0;
}
浮点型变量的定义和使用
保存小数
浮点型变量的定义
float a;单精度浮点型,精确的有效位数6-8位
double b;双精度浮点型,精确的有效位数时13-15位
#include
int main()
{
//定义并且初始化
floatf = 0;
double d = 0;
//赋值
f = 3.141;
d = 3.1415926538765;
scanf("%f", &f);
scanf("%lf", &d);
//输出
//f中出现了四舍五入
printf("f = %f\n", f);
printf("d = %.15lf\n", d);
return 0;
}
字符型的定义与使用
char chr;
其实字符型也可以看成整型,一个字节
#include
int main()
{
char chr1 = 'q';
char chr2 = '\0';//一般初始化位'\0'
chr2 = 't';
//scanf("%c", &chr1);
//scanf("%c", &chr2);
scanf("%c %c", &chr1, &chr2); //a b
scanf("%c%c", &chr1, &chr2); //ab
printf("chr1 = %c\n", chr1);
printf("chr2 = %c\n", chr2);
return 0;
}
#include
int main()
{
char chr = 'A';
printf("chr = %c\n", chr);
printf("chr = %d\n", chr);
printf("%d\n", 54);
printf("chr = %c\n", 65);
return 0;
}
/*
其实字符在内存中存储也是按二进制补码存储的
读的时候,%c可以认为读出来的就是65,但是它会去系统中的一个字符集中对比,65能对应上谁,就打印谁
ASCII表
*/
整型变量的相互赋值
int = 8 ;
short b = a;
[位截断]长整型赋值给端整型(长短代表的时字节的长短)发生位截断,保留低位,截断高位
a:0000 0000 0000 0000 0000 0000 0000 1000
b:0000 0000 0000 1000
[位扩展]端整型赋值给长征行(发生位扩展,扩展在高位)整数补0,负数补1
char a = 1;
short b = a;
a:0000 0001
b:0000 0000 0000 0000
char a = 1;
网友评论