大家好,今天要给大家介绍的内容是C语言中的数据类型和变量,还有一些操作符的使用,希望今天的内容可以给大家带来帮助,如果作者又说的不对的地方,欢迎各位学习C语言的同僚指点出来,我会及时改正,共同进步,谢谢大家。
那么我会按照目录来进行讲解,让我们开始吧!
1.数据类型的介绍
因为我们是初学C语言,所以只介绍下面四种类型,等我们的实力达到了,自然会接触更多的类型!
1.1字符型
char;
[signed] char;
unsigned char;//大家不用紧张,后面我会介绍signed和unsigned是什么意思的,我们一步步来
1.2整形
//短整型
short int;
[signed] short [int];
unsigned short int;
//整形
int;
signed int;
unsigned int;
//长整型
long int;
[signed] long [int];
unsigned long int;
//更长的整形
//C99中引入
long long [int];
[signed] long long [int];
unsigned long long [int];
1.3浮点型
float;
double;
long double;
1.4布尔类型
C语言中原来并没有为布尔值单独设置一个类型,而是使用整数0表示假,非零值表示真。
C99中也引入了布尔类型,是专门表示真假的。
布尔类型的使用需要包含头文件<stdbool.h>
布尔类型变量的取值是:true或者false。
#define bool _Bool;
#define false 0
#define true 1
下面有一个简单的代码方便大家理解:
#include<stdio.h>
#include<stdbool.h>//使用布尔类型一定不能忘了头文件!!!
main()
{
_Bool flag = true;
if (flag)//因为flag = true为真,所以执行下面语句
printf("青山是帅哥\n");
_Bool num = false;
if (num)//因为num = false为假,所以不执行下面语句
printf("青山不是帅哥\n");
return 0;
}
2.signed和unsigned
C语言使用signed和unsigned关键字来修饰字符型和整形类型的。
signed关键字,表示一个类型带有正负号,包含负数。(有符号类型)
unsigned关键字,表示该类型不带正负号,只能表示0和整数。(无符号类型)
对于int类型,默认是带有正负号的,也就是说int 等同于 signed int。
由于这是默认情况,关键字signed一般省略不写,但是写了也不算错。
signed int a;
//等同于int a;
//建议写下面这种情况,不容易弄错。
int类型也可以不带正负号,只表示非负数。这是就必须使用关键字 unsigned 声明变量
unsigned int;
unsigned int a;
//也可以缩写成 unsigned a;
字符类型char也可以设置signed和unsigned
signed char c;//范围是-128 到 127
unsigned char c;//范围是0 到 225
3.数据类型的取值范围
上面说到的数据类型有很多,尤其是整形就有short,int,long,long long。why?
哈哈哈,其实呢每一种数据类型都有自己的取值范围,也就是储存最大值和最小值的区间,有了丰富的类型,我们就可以在适当的场景下选择合适的类型。下面我帮大家用代码算出各个类型的储存范围了,大家是不是要谢谢我呀!
<limits.h>文件说明了整型类型的取值范围。
<float.h>这个头文件说明了浮点型类型的取值范围
#include<stdio.h>
#include<string.h>//这个是sizeof的头文件
#include<limits.h>//一定不能忘了这个头文件哟!
#include<float.h>//一定不能忘了这个头文件哟!
main()
{
printf("char=%zd\n", sizeof(char));
printf("short=%zd\n", sizeof(short));
printf("int=%zd\n", sizeof(int));
printf("long=%zd\n", sizeof(long));
printf("long long=%zd\n", sizeof(long long ));
printf("float=%zd\n", sizeof(float));
printf("double=%zd\n", sizeof(double));
printf("short int=%zd\n", sizeof(short int));
printf("long int=%zd\n", sizeof( long int));
printf("unsigned char=%zd\n", sizeof(unsigned char ));
printf("unsigned long=%zd\n", sizeof(unsigned long));
printf("unsigned short=%zd\n", sizeof(unsigned short));
printf("unsigned long long=%zd\n", sizeof(unsigned long long ));
printf("unsigned int=%zd\n", sizeof(unsigned int));
printf("int的取值范围为-2147483648--2147483647\n");
printf("unsigned int的取值范围为0--4294967295\n");
printf("short的取值范围为-32768--32767\n");
printf("unsigned short的取值范围为0--65535\n");
printf("char值范围为-128--127\n");
printf("unsigned char值范围为0-255\n");
return 0;
}
4.变量
4.1创建变量
我们了解了类型,我们使用类型做什么呢?类型是用来创造变量的。
什么是变量呢?C语言中把经常变化的值称为变量,不变的量称为常量。
设置变量的语法如下:
data_type name;
// | |
// | |
//数据类型 变量名
int a;//整型变量
char ch;//字符变量
float b;//浮点型变量
变量在创建的时候就给一个初始值,这叫做初始化。
int a = 0;//整型变量
char ch = 'Y';//字符变量
float b = 3.14;//浮点型变量
unsigned int c = 400;
4.2变量的分类
全局变量:在大括号外部定义的变量叫做全局变量
全局变量的范围更广整个工程中想使用,都有办法使用的
局部变量:在大括号内部定义的变量就是局部变量
局部变量的适用范围是比较局限的,只能在自己所在的局部范围内使用。
#include<stdio.h>
int num1 = 2022;//全局变量
main()
{
int num2 = 2023;//局部变量
printf("%d\n", num1);
printf("%d\n", num2);
return 0;
}
那如果局部和全局变量名字相同呢??
不要害怕,我们用代码实践,实践是检验真理的唯一标准!
#include<stdio.h>
int num1 = 2022;//全局变量
main()
{
int num1 = 2023;//局部变量
printf("%d\n", num1);
return 0;
}
其实当局部变量和全局变量名字一样时,局部变量是优先使用的。
以上就是本篇文章的全部内容了,谢谢大家可以和我一起学习C语言,如果有什么地方讲错了,欢迎大家在评论区指出,我也会马上改正。谢谢!