#数据类型和结构介绍
##一·数据类型分类
数据类型分为内置类型和自定义类型
##1.1字符
1.char
2.[sigend] char //有符号字符
3.unsigned char //无符号字符
##1.2整形
//短整型 short
short [int] // [] 里的int可省略
[signed] short [int] //有符号的短整型
unsigned short [int] //无符号的短整型
//整形
int //整形
[signed] int //有符号的整型
unsigned int //无符号的整型
//长整型
long [int] // [] 里的int可省略
[signed] long [int] //有符号的长整型
unsigned long [int] //无符号的长整型
//更长整型
long long [int] // [] 里的int可省略
[signed] long long [int] //有符号的更长整型
unsigned long long [int] //无符号的更长整型
##1.3浮点型
float //单精度浮点型
double//双精度浮点型
long double
#include<stdio.h>
int main()
{
int float=30.5
printf("%f/n",float)
return 0;
}
##1.4布尔型
_bool布尔型专门表示真假且布尔类型的使用必须包含头文件<stdbool.h>
#include <stdbool.h>
int main()
{
_Bool flag = true;
if (flag)
printf("I like C\n");
else
printf("hehe\n");
return 0;
}
#二·signed和unsigned的介绍
signed和unsigned关键字修饰字符型和整形类型
##signed
signed关键字表示该类型带有正负号,包含负值;
#include <limits.h>
int main()
{
int num;
int Temperature1 = 30;
int Temperature2 = -30;
return 0;
}
##unsigned
unsigned关键字表示该类型只能表示0和正整数。
#include <limits.h>
int main()
{
int num;//
int Temperature1 = 30;
int Temperature2 = -30;
unsigned int age = 20;
unsigned short age = INT_MIN;
return 0;
unsigned的好处是相比signed最大整数值大了一倍
#三·数据类型取值范围
<limits.h>这个文件说明了整数的取值范围
<flag.h>这个文件说明了浮点数的取值范围
#四·变量
##4.1变量的创建
数据类型是用来创建变量的
C语言中把经常变化的量称为变量,不变的称为常量
语法形式
data_type name;
//数据类型_变量名
int main()
{
int weight;
char ch;
float score;
short age;
//初始化
int weight = 59;
char ch = 'q';
float score = 98.51f;
short age = 20;
return 0;
}
##4.2数据类型的分类
全局变量:在大括号{}外的变量就是全局变量(整个工程范围内都可以使用)
局部变量:在大括号{}内的变量就是局部变量(只能在自己的局部范围内使用)
#include<stdio.h>
int g_val = 2023;//全局变量 适用于全部工程
int main()
{
int a = 0;
{
int b = 10;
printf("%d\n", b);
printf("g_val1 = %d\n", g_val);//打印2023
}
printf("g_val2 = %d\n", g_val);//打印2023
eturn 0;
}
如果全局和局部变量相同(就近原则局部优先)
#incluede<stdio.h>
int a = 10;
int main()
{
{
int a = 20;
printf("%d\n", a);
}
printf("%d\n", a);
return 0;
}
#五·算数操作符
±*/%(双目操作符)
##5.1加减±
#incluede<stdio.h>
int main()
{
int num1 = 3 + 7;
printf("%d\n", num1);
int num2 = 3 - 7;
printf("%d\n", num2);
//10 -4
int sum = num1 + num2;
printf("%d\n", sum);
return 0;
}
##5.2乘*
#incluede<stdio.h>
int main()
{
int n = 5;
printf("%d\n", n * n);
return 0;
}
#5.3除/
#incluede<stdio.h>
int main()
{
int a = 7 / 2;//7/2=3...1//若想输出小数值7/2其中一个改为小数如2.0f
printf("a = %d\n", a);//输出值为3
return 0;
}
##5.3求模运算(即返回余值)
#incluede<stdio.h>
nt main()
{
int a = 7 / 2;//商
int b = 7 % 2;//%取模(取余)得到是是整除后的余数
printf("a=%d\n", a);
printf("b=%d\n", b);
return 0;
}
#六·赋值操作符
int a = 0;//初始化
a = 20;//赋值,= 赋值操作符
##6.1连续赋值
int main()
{
int a = 3;
int b = 5;
int c = 0;
c = b = a + 3;
//连续赋值,从右向左依次赋值的。即将a+3赋值给b再将b赋值给c
b = a + 3;
c = b;
return 0;
}
##6.2符合赋值
ibcluede<stdio.h>
int main()
{
int a = 3;
a = a + 10;
a += 10;//复合赋值
//输出a等于13
a = a - 4;
a -= 4;//复合赋值
printf("%d\n", a);
// a输出-1
return 0;
}
#七++,–
++,–(自增操作符)分为前置++前置–,后置++和后置–
##前置++和后置++
前置++
计算口诀:先++,后使用
int main()
{
int a = 5;
int b = ++a;
//a=a+1;b=a;
printf("a=%d\n", a);//6
printf("b=%d\n", b);//6
return 0;
}
后置++
计算口诀:先使用,再++
int main()
{
int a = 5;
int b = a++;
//b=a;a=a+1;
printf("a=%d\n", a);//6
printf("b=%d\n", b);//5
return 0;
}
##前置–和后置–
前置--
计算口诀:先--,后使用
int main()
{
int a = 5;
int b = --a;
//a=a-1;b=a;
printf("a=%d\n", a);//4
printf("b=%d\n", b);//4
return 0;
}
后置--
计算口诀:先使用,再--
int main()
{
int a = 5;
int b = a--;
//b=a, a=a-1
printf("a=%d\n", a);//4
printf("b=%d\n", b);//5
return 0;
}