【玩转C语言】第二讲--->数据类型和变量

 🔥博客主页🔥:【 坊钰_CSDN博客 】

欢迎各位点赞👍评论✍收藏⭐

引言:

大家好,我是坊钰,为了让大家深入了解C语言,我开创了【玩转C语言系列】,将为大家介绍C语言相关知识,另外,还会不定时更新【C语言训练题库】,想学好C语言的宝子们,一定要收藏起来,一起努力吧!

点赞!收藏!以防以后找不到了!!!

目录

1. 数据类型介绍

1.1 字符型

 1.2 整型

1.3 浮点型

1.4 布尔类型

1.5 数据类型的长度

1.5.1 sizeof()操作符

1.5.2 数据类型长度

1.5.3 sizeof()中表达式不计算

2.signed 和 unsigned 

3. 变量

3.1 变量的创建

3.2 变量的分类

3.3 变量存储位置

 4. 算术操作符:+、-、*、/、%

4.1 + 和 -

4.2 * 和 /

4.2.1 *

4.2.2 /

4.3 %

5. 赋值运算符 = 和 复合赋值

5.1 连续赋值

5,2 复合赋值

6. 单目操作符 ++,--,+,-

6.1 ++ 和 --

6.1.1 前置++

6.1.2 后置++

7. 强制类型转换

8. 小结


1. 数据类型介绍

C语言提供了丰富的数据类型来描述生活中的各种数据

所谓“类型”,就是相似的数据所拥有的共同特征,编译器只有知道了数据的类型,知道怎么操作数据

下面盘点一下C语言提供的各种数据类型,本章节主要探讨内置数据类型

1.1 字符型

char ch;             //字符型
signed char ch;      //有符号字符型
unsigned char ch;    //无符号字符型

 1.2 整型

//短整型
short int
signed short int
unsigned short int

//整型
int
signed int
unsigned int

//长整型
long int
long long int
signed long int
signed long long int
unsigned long int
unsigned long long int

1.3 浮点型

float   //单精度
double  //双精度

1.4 布尔类型

使用布尔类型要包含头文件--->  <stdbool.h>

布尔类型的取值范围是 turn 和 false

#define bool _Bool   //布尔类型定义

#define turn 1
#define false 0

1.5 数据类型的长度

每一种数据类型都有自己的长度,不同的数据类型可创造出不同的长度的变量,不同的数据类型的存储都有差异

1.5.1 sizeof()操作符

sizeof() 是一个关键字,也是操作符,注意:它并不是库函数

sizeof() 操作符的操作数可以是类型,也可是变量或者表达式

sizeof(类型)
sizeof 表达式

注意: 

  1. sizeof 的操作数如果不是类型,是表达式的时候,可以省略掉后边的括号的
  2. sizeof 后边的表达式是不真实参与运算的,根据表达式的类型来得出大小

1.5.2 数据类型长度

 

类型                 字节(单位)
char                    1
bool                    1
short                   2
int                     4
long                    4        C语言标准规定:long>=int
long long               8
float                   4
double                  8
long double             8        C语言标准规定:long double>=double

1.5.3 sizeof()中表达式不计算

#include <stdio.h>
int main()
{
 short s = 2;
 int b = 10;
 printf("%d\n", sizeof(s = b+1));
 printf("s = %d\n", s);
 return 0;
}

结果

 

2.signed 和 unsigned 

C 语言使用 signed 和 unsigned 关键字修饰字符型和整型类型的

  • signed 表示带有符号的数,可表示正数负数
  • unsigned 表示没有符号的数,仅表示 0 和 正数

注意:C语言规定 char 类型默认是否带有正负号,由当前系统决定

3. 变量

3.1 变量的创建

C语言中把经常变化的值称为变量,不变的值称为常量

int ret; //整型变量 
char ch; //字符变量 
double dh; //浮点型变量 

在创建的时候就给⼀个初始值,就叫初始化

int ret = 100; 
char ch = 'w'; 
double dh = 0.5; 

3.2 变量的分类

  • 全局变量:在大括号外部定义的变量就是全局变量
  • 局部变量:在大括号内部定义的变量就是局部变量
#include <stdio.h>

int a = 10;    //全局变量

int main()
{
	int b = 100;   //局部变量
	printf("%d", a);
	printf("%d", b);
	return 0;
}

如果局部和全局变量名字相同

#include <stdio.h>

int a = 10;    //全局变量

int main()
{
	int a = 100;   //局部变量
	printf("%d", a);
	return 0;
}

结果打印  a=100;

其实当局部变量和全局变量同名的时候,局部变量优先使用

3.3 变量存储位置

  1. 局部变量是放在内存的栈区
  2. 全局变量是放在内存的静态区
  3. 堆区是⽤来动态内存管理的(后期会介绍)

 4. 算术操作符:+、-、*、/、%

4.1 + 和 -

+ 和 - 有两个操作数,也被称为双目操作符,用来计算加法和减法

#include <stdio.h>

int main()
{
	int a = 10;
	int b = 20;
	int c = a + b;
	int d = a - c;
	printf("%d\n", c);
	printf("%d\n", d);
	return 0;
}

4.2 * 和 /

4.2.1 *

用来计算乘法

#include <stdio.h>

int main()
{
	int a = 10;
	int b = 20;
	int c = a * b;
	printf("%d\n", c);
	return 0;
}

4.2.2 /

用来计算除法,不过当 / 两边都为整数时,结果也为整数 例:

#include <stdio.h>

int main()
{
	int a = 10 / 4;       //结果为 2
	int b = 10 / 4.0;     //结果为 2.5
	printf("%d\n", a);
	printf("%d\n", b);
	return 0;
}

4.3 %

取模运算符,意思是求余数

#include <stdio.h>

int main()
{
 int x = 6 % 4; //结果为 2
 return 0;
}

5. 赋值运算符 = 和 复合赋值

注意:赋值和初始化是不一样的

int a = 100;   //初始化
a = 200;       //赋值

5.1 连续赋值

赋值操作可以连续

a = 10;
b = 20;
c = 30;

5,2 复合赋值

在写代码时,我们经常可能对⼀个数进行自增、自减的操作,如下代码

a = a + 3;
b = b - 8;

这样代码C语言给提供了更加方便的写法

a += 3;
b -= 8;

//复合赋值符

  +=   -=

6. 单目操作符 ++,--,+,-

6.1 ++ 和 --

  • ++是⼀种自增的操作符,又分为前置++和后置++
  • --是⼀种自减的操作符,也分为前置--和后置--

6.1.1 前置++

int a = 10;
int b = ++a;
printf("%d",b);

口诀:先加一,后计算

a 先加一 为 11,在赋值给 b , 最后 b为11 ,a 最后也为 11

6.1.2 后置++

int a = 10;
int b = a++;
printf("%d",b);

口诀:先计算,后加一

a 为 10 ,先计算,那 b 就为 10,计算之后,a 在加一,最后,b 为10,a 为 11

前置 -- 和后置 -- 和++用法一样

7. 强制类型转换

在操作符中还有⼀种特殊的操作符是强制类型转换,语法形式很简单,形式如下

float a = 3.14;
int b = (int)a;    //强制转换为整型

//结果 b = 3;

俗话说,强扭的瓜不甜,我们使⽤强制类型转换都是万不得已的时候使用,如果不需要强制类型转化就能实现代码,这样自然更好的

8. 小结

 以上就是关于【玩转C语言】第二讲的内容了,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持!

相关推荐

  1. 第二 C语言数据结构与变量(1)

    2024-06-11 13:16:04       46 阅读
  2. 二:C语言-数据类型变量

    2024-06-11 13:16:04       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-11 13:16:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-11 13:16:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-11 13:16:04       82 阅读
  4. Python语言-面向对象

    2024-06-11 13:16:04       91 阅读

热门阅读

  1. 在Vue中使用websocket的流程

    2024-06-11 13:16:04       28 阅读
  2. 前端实现流文件下载

    2024-06-11 13:16:04       30 阅读
  3. 廉价耐储存食物推荐: 末日生存爱好者

    2024-06-11 13:16:04       33 阅读
  4. C++day5

    C++day5

    2024-06-11 13:16:04      28 阅读
  5. 15年老程序员的内心独白

    2024-06-11 13:16:04       25 阅读
  6. 前端学习笔记(一)

    2024-06-11 13:16:04       26 阅读
  7. c语言基础篇C

    2024-06-11 13:16:04       32 阅读
  8. SpringMVC

    SpringMVC

    2024-06-11 13:16:04      29 阅读