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