C语言第三弹—C语言数据类型和变量

简介: C语言第三弹—C语言数据类型和变量

数据类型分为两种:内置类型 自定义类型。

内置类型可以理解为编译器自己拥有的类型,分别为:字符、整形、浮点型、布尔类型。

自定义类型是自己定义的类型,分别为:数组、结构体struct 、枚举enum、联合体union。

1.字符有三种类型:char(字符)、signed char(有符号 字符) 、unsigned char(无符号 字符)。

2.整型:短整型(short int 、signed short int 、unsigned short int)、整型(int、signed int、unsigned int)、长整型(long int、signed long int 、unsigned long int)、更长整型。

3.浮点型(可理解为小数):(float、double、long double)

4.布尔类型:_Bool

布尔类型是专门用来判断真假的类型

如果 定义的变量为非0则为真 为0则为假

#include <stdio.h>
#include <stdbool.h> //使用时要添加该头文件
int main()
{
_Bool flag=1;
while(flag)//while循环 括号内条件为真即运行
{
printf("未来为我们未来\r\n");
}
return 0;
}

何为signed unsigned?

signed 可以理解为有符号的某个类型 一般类型前面什么都不加(不过char 类型是由系统决定 如果不注明signed 和unsigned可能是signed char 也可能是unsigned char)就是默认为有符号,可为正可为负。

unsigned:代表该数据类型只能是0和整数。

区别:signed 数据类型取值范围范围是unsigned一倍。

数据类型的取值范围

取值范围只需要记住一些常见的数据类型取值范围就可以了。

如果想要了解详细取值范围,可以在VS附带文件中找到limits.h查看整数类型取值范围,float.h中查看浮点型取值范围。

如何创建变量?有哪几种变量?

创建变量语法:数据类型 变量名;其中变量名是程序与会自己定义,不过不能与关键词冲突,不然将无法运行,在创建时给予一个初始值,就叫做初始化。

#include <stdio.h>
int main()
{
int age=19;
char ch='b';
float num=3.14;
return 0;
}

变量分为:全局变量、局部变量。

全局变量:顾名思义定义的变量可以在任意位置使用。不过必须写在main函数前。
#include <stdio.h>
int a=10;
int main()
{
printf("%d",a);
return 0;
}
局部变量:只能在其{}中使用。
#include <stdio.h>
int main()
{
int a=10;//该10可以在{}任意使用
{
int b=20;
}
printf("%d %d",a,b);//此处因为b在嵌套的{}中 b是无法使用的
return 0;
}

算术操作符

算数操作符就是我们常见的+、-、*、/、%。

这些操作符称为双目运算符(可理解为两个整数进行运算)。

下面使用代码演示+、-、*、/、%
#include <stdio.h>
int main()
{
int a=10;
int b=20;
int c=0;
c=a+b;
printf("%d ",c);//30
c=a-b;
printf("%d ",c);//-10
c=a*b;
printf("%d ",c);//200
c=a/b;
printf("%d ",c);//0
c=a%b;
printf("%d ",c);//10
return 0;
}
其中/ ,如果定义的变量类型是整型,而答案是小数时,自动将小数忽略(不存在四舍五入)如果想要答案是小数则接受答案变量数据类型是浮点型,且运算的两个变量必须有一个要写成浮点数。
#include <stdio.h>
int main()
{
flaot c=0;
c=10.0/20;//运算的两个变量必须有一个要写成浮点数。
printf("%f",c);
return 0;
}

%称为取余运算符:可以用来求余数或者判断一个整数是否被另外一个整数整除(可以理解为%于分子为0即为被整除)。

#include <stdio.h>
int main()
{
int a=0;//只能用于整数
a=10%3;//a为1
a=-10%3;//a为-1 变量是否为负由第一个变量决定
a=10%-3;//a为1
return 0;
}

赋值操作符

创建一个变量并使用=给与变量一个值就是赋值。

注:=是赋值 ==是等于。

复合赋值:+=、-=、/=、*=、%=、<<=、>>=、&=、|=、^=

#include <stdio.h>
int main(void)
{
int a=10;
a+=3;//可拆分为 a=a+3 大大方便代码书写 其它同此
return 0;
}

单目操作符

顾名思义只有一个变量进行运算。单目操作符有:++(前后置++) 、–(前后置–)、+(正)、-(负)

++、–运算法则:a++等同为a=a+1;a–等同于a=a-1;
+ -就是给变量定义正负 一般不加符号默认为+ 打印也会省略+号 ,如果想显示+号在%d中添加+号即可。
#include <stdio.h>
int main()
{
int a=10;
int b=0;
int c=0;
b=a++;//后置是先运算再++ 则此处b不会赋值为a+1,会先打印10
c=++a;//先+1 再运算 --同++
printf("%d",a,b,c);//故打印值为 12 10 12
return 0;
}
## 强制类型转换
### 语法 :(数据类型)
```c
#include <stdio.h>
int main()
{
int a=3.14;//会报警告
int a=(int)3.14;//如果你不想出现警告可以直接使用(int) 就可以把它转化为整型
printf("%d",a);//3
return 0;
}


相关文章
|
16天前
|
存储 程序员 编译器
C 语言中的数据类型转换:连接不同数据世界的桥梁
C语言中的数据类型转换是程序设计中不可或缺的一部分,它如同连接不同数据世界的桥梁,使得不同类型的变量之间能够互相传递和转换,确保了程序的灵活性与兼容性。通过强制类型转换或自动类型转换,C语言允许开发者在保证数据完整性的前提下,实现复杂的数据处理逻辑。
|
6天前
|
存储 编译器 C语言
【C语言】C语言的变量和声明系统性讲解
在C语言中,声明和定义是两个关键概念,分别用于告知编译器变量或函数的存在(声明)和实际创建及分配内存(定义)。声明可以多次出现,而定义只能有一次。声明通常位于头文件中,定义则在源文件中。通过合理组织头文件和源文件,可以提高代码的模块化和可维护性。示例包括全局变量、局部变量、函数、结构体、联合体、数组、字符串、枚举和指针的声明与定义。
35 12
|
15天前
|
存储 编译器 C语言
【C语言】数据类型全解析:编程效率提升的秘诀
在C语言中,合理选择和使用数据类型是编程的关键。通过深入理解基本数据类型和派生数据类型,掌握类型限定符和扩展技巧,可以编写出高效、稳定、可维护的代码。无论是在普通应用还是嵌入式系统中,数据类型的合理使用都能显著提升程序的性能和可靠性。
37 8
|
15天前
|
C语言
【C语言】全局搜索变量却找不到定义?原来是因为宏!
使用条件编译和 `extern` 来管理全局变量的定义和声明是一种有效的技术,但应谨慎使用。在可能的情况下,应该优先考虑使用局部变量、函数参数和返回值、静态变量或者更高级的封装技术(如结构体和类)来减少全局变量的使用。
31 5
|
2月前
|
存储 C语言
【c语言】数据类型和变量
本文介绍了C语言中的数据类型和变量。数据类型分为内置类型和自定义类型,内置类型包括字符型、整型、浮点型等,每种类型有不同的内存大小和取值范围。变量分为全局变量和局部变量,它们在内存中的存储位置也有所不同,分别位于静态区和栈区。通过示例代码和图解,详细阐述了这些概念及其应用。
49 1
|
2月前
|
存储 C语言
C语言指针与指针变量的区别指针
指针是C语言中的重要概念,用于存储内存地址。指针变量是一种特殊的变量,用于存放其他变量的内存地址,通过指针可以间接访问和修改该变量的值。指针与指针变量的主要区别在于:指针是一个泛指的概念,而指针变量是具体的实现形式。
|
2月前
|
存储 C语言
C语言:设置地址为 0x67a9 的整型变量的值为 0xaa66
在C语言中,可以通过指针操作来实现对特定地址的访问和赋值。要将地址为 0x67a9 的整型变量值设为 0xaa66,可以先定义一个指向该地址的指针,并通过该指针对该内存位置进行赋值操作。需要注意的是,直接操作内存地址具有一定风险,必须确保地址合法且可写。代码示例应考虑字节序及内存对齐问题。
|
2月前
|
C语言 C++
【C语言】指针篇-一篇搞定不同类型指针变量-必读指南(3/5)
【C语言】指针篇-一篇搞定不同类型指针变量-必读指南(3/5)
|
2月前
|
存储 C语言
初识C语言:常量与变量中寻找数据类型
初识C语言:常量与变量中寻找数据类型
|
2月前
|
C语言 C++
实现两个变量值的互换[C语言和C++的区别]
实现两个变量值的互换[C语言和C++的区别]
24 0