数据类型
#include<stdio.h>
#include<stdlib.h>
int main()
{
char ch = 'a'; //创建一个字符类型的空间
int age = 20; //整形
short num = 10; //短整型,int可以省略
//long
//long long
float weight = 55.5;//单精度浮点型
double d = 0.0 ; //双精度浮点型
system("pause");
return 0;
}
类型的大小
int main()
{
printf("char的大小为%d\n",sizeof(char)); //sizeof()计算变量大小,单位字节
printf("short的大小为%d\n",sizeof(short));
printf("int的大小为%d\n",sizeof(int));
printf("long的大小为%d\n",sizeof(long));
printf("long long的大小为%d\n",sizeof(long long));
printf("float的大小为%d\n",sizeof(float));
printf("double的大小为%d\n",sizeof(double));
return 0;
//在tasks.json文件中的"args":中加入"-fexec-charset=GBK"就能解决中文输出的乱码问题
}
计算机中的单位:
bit —>位,二进制里的一个1或0;
byte—>字节,一个字节等于8个bit
kb—>1024byte
mb—>1024kb
…
-
为什么c语言有这么多类型?
节省存储空间
-
每种类型的大小是多少?
变量常量
有一些数据是不能变的:血型,性别,但有一些是一定可变的:工资,年龄。
C语言中这样描述:常量和变量。
定义变量的方法
类型 变量的名字 = 0;
类型 变量的名字
int age = 18;
double weight = 68;
age++;
weight = weight-10;
printf("%d",age);
printf("%lf",weight);
//%d---int
//%f---float
//%lf---double
变量的分类
括号外的就是全局变量
括号内的就是局部变量
int a = 100;//全局变量
int main()
{
int a = 10;//局部变量
printf("%d",a);//全局变量和局部变量名字一样,局部优先
//不建议全局变量和局部变量名字一样
return 0;
}
变量的使用
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
int sum = 0;
scanf("%d %d",&a,&b);
sum = a+b;
printf("sum = %d\n",sum);
return 0;
}
变量的作用域和声明周期
作用域
变量在哪里可以使用,哪里就是作用域
局部变量的作用域:就是变量所在的局部范围
全局变量的作用域:整个工程(extern声明一下变量,就可以跨.c文件使用)
#include<stdio.h>
int b = 10;
int main()
{
printf("1:%d",b)
{
printf("2:%d",b)
int a = 10;//a的作用域就是代码块的内部
}
//printf("%d",a)//不能打印
return 0;
}
#include<stdio.h>
extern int b;//vscode 只能对单文件运行,用不了全局变量
int main()
{
printf("1:%d",b)
return 0;
}
生命周期
变量的创建到销毁之间的时间段
局部变量:进入所在局部范围,生命开始,出局部范围,生命结束。
全局变量:程序的生命周期
常量
-
字面常量:
3.14; 10; 'a'; "abcd";
-
const修饰的常变量:
const int mun = 10; num = 20; //报错,const修饰后不能更改,num还是变量,具有常属性不能修改 printf("%d",num); int arr[10] = {0}; const int n = 10; int arr2[n] = {0};//报错,因为const修饰后还是变量
-
define定义的标识符常量:
#define MAX 10000 int n = MAX; printf("%d",n);
-
枚举常量:
可以一一列举的常量:性别
enum Sex { MALE = 3, //枚举类型未来可能出现的取值,=3为赋初值,下面依次递增 FEMALE, SECREC }; int main() { enum Sex s = MALE; return 0; }
字符串
字符串就是一串字符,用双引号括起来的一串字符
注:字符串以“\0”结尾。
#include<string.h>
int main()
{
"abcd";
char arr[] = "hellow";
char arr1[] = "abc";
char arr2[] = {'a','b','c'};
char arr3[] = {'a','b','c','\0'};
printf("%s\n",arr1);//"abc\0"
printf("%s\n",arr2);//没有结束字符\0,会接着输出乱码
printf("%s\n",arr3);//有'\0',不会出现乱码
//求字符串长度
int len = strlen("abc");//计算字符串长度不算'\0',注意引用头文件<string.h>
printf("%d",len);
printf("%s\n",strlen(arr2));// 随机值
printf("%s\n",strlen(arr3));
return 0;
}
printf(“%s\n”,arr3);//有’\0’,不会出现乱码
//求字符串长度
int len = strlen("abc");//计算字符串长度不算'\0',注意引用头文件<string.h>
printf("%d",len);
printf("%s\n",strlen(arr2));// 随机值
printf("%s\n",strlen(arr3));
return 0;
}
![image-20220608201056780](https://img-blog.csdnimg.cn/img_convert/cbd463f290071aa617eadf40579eef10.png)