数据类型
#includeint main() { char ch = 'a';//创建一个字符型变量,并申请一个字节内存空间存放"a",字符型使用单引号 int age = 20;//创建整形变量,并申请内存空间 short num = 10;//短整型 float f = 4.6f;//默认小数为double型,从高精度到低精度会造成精度丢失,因此出现错误,需要加f double d=3.14; printf("%lfn", d); printf("%fn", f); printf("%cn", ch);// %c打印字符格式的数据;/n换行 printf("%dn", age);//%d打印整形十进制格式的数据 return 0; } //%d --打印整形 //%c--打印字符型 //%f--打印float型 //%lf--打印double型 //%x--打印16进制数字
每种数据类型的大小
#includeint main() { printf("%dn", sizeof(char)); // 1个字节:8bit-2^8 个地址 printf("%dn", sizeof(long));// 4/8个字节 printf("%dn", sizeof(short));// 2个字节:16bit-2^16 个地址 printf("%dn", sizeof(int));// 4个字节:32bit-2^32 个地址 printf("%dn", sizeof(long long));// 8个字节 printf("%dn", sizeof(float));// 4个字节 printf("%dn", sizeof(double));// 8个字节 return 0; }
sizeof --关键字--操作符--计算类型或者变量所占空间的大小
C语言规定:sizeof (long)>=sizeof (int)
选择不同的数据类型,空间利用率更高
计算机进制表示
bit 比特位 --二进制 -- 0和1
byte 字节 --8bit
kb =1024byte
mb=1024 kb
gb=1024mb
常量、变量-
常量:不能改变的量
-
变量:能被改变的量
(1)变量的定义方法
类型 变量的名字 [=常量]
#includeint main() { //创建变量 //类型 变量的名字 =0; int age = 20; age = age + 1;//变量可以变化 printf("%dn", age); return 0; }
(2)变量的分类:
-
全局变量:{}函数外部定义的
-
局部变量:{}函数内部定义的
int a = 100;//全局变量
int main()
{
int a = 10;//局部变量
printf("%dn", a);//结果为10
return 0;
}
当局部变量和全局变量名字冲突的情况下,局部优先
不建议,把全局变量和局部变量的名字写成一样的
(3)如何使用变量
//求两个整数的和 #define _CRT_SECURE_NO_WARNINGS 1 //放在代码的第一行 #includeint main() { int a = 0; int b = 0; int sum = 0; //scanf 函数是输入函数 scanf("%d %d", &a, &b);//输入数据时,也要输入空格 sum = a + b; printf("%dn", sum); return 0; }
注意
当出现下列错误时:
解决方法:
-
源文件的第一行加上:#define _CRT_SECURE_NO_WARNINGS 1
-
或者一次性加入;找到VS路径中的newc++file.cpp ,以管理员身份运行记事本,输入#define _CRT_SECURE_NO_WARNINGS 1 ,则以后再建.c文件不需要再另加了。
-
-
使用scanf_s函数:scanf_s函数是VS编译提供的,不是C语言标准规定的;
(4)变量的作用域和生命周期
作用域:限定变量的可用性的代码范围就是这个变量的作用域。
-
局部变量的作用域是变量所在的局部范围(即局部变量只能在所在的局部范围内可以使用)
#include
int main() { { int a = 2022; printf("%dn", a); } //变量a只在此{}内可用 return 0; } -
全局变量的作用域是整个工程(当一个源文件使用另一个源文件定义的全局变量时,需要声明一下:(“extern int a”)
#include
int a = 2022; //全局变量a在整个工程内可用 int main() { printf("1:%dn", a); { printf("2:%dn", a); } printf("3:%dn", a); return 0; } #include
//可以使用同一工程下的不同源文件的全局变量,但是需要声明一下变量 extern int a;//extern 声明外部符号 int main() { printf("%dn", a); return 0; }
生命周期:变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。
-
局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束。
-
全局变量的生命周期:整个程序的生命周期。
C语言中的常量分为以下几种:
//1。字面常量
3.14;//float型常量
20;//整形常量
'a'//字符型常量
'asdf'//字符串常量
//2. const 修饰的常变量
//age是变量,可以更改
int age = 20;
printf("%dn", age);
age = 10;
printf("%dn", age);
//const修饰age是常变量-具有常属性(不能改变的属性),但本质仍然是变量
const int age = 20;
printf("%dn", age);
age = 10;
printf("%dn", age); //报错
//n本质还是变量,定义数组时[常量表达式],所以报错
int arry[10] = { 0 };
const int n = 10;
int arry2[n] = { 0 };
//3.define 定义的标识符常量
#include
#define MAX 10000;
int main()
{
MAX=2000;//MAX的值不能更改,报错
int n = MAX;
printf("n=%dn", n);
return 0;
}
//4.枚举常量--可以一一列举的常量(例如:性别)
enum Sex //创建枚举类型
{
MALE=3,//可以附初值,但是不可以改
FEMALE,
SECRET
};
enum Sex s = MALE; //创建一个枚举类型的常量s;
printf("%dn", MALE);
printf("%dn", FEMALE);
printf("%dn", SECRET);//输出结果为0,1,2;枚举常量默认从0开始; 


