第二节、C语言中的数据类型和变量

目录

一、类型分类

二、字符类型

三、整形

四、浮点型

五、布尔类型

六、变量


一、类型分类

C语言中,数据类型可以分为基本数据类型和构造数据类型。这里我们讲一下基本数据类型,至于构造数据类型后面会讲。

基础数据类型有字符类型、整形、浮点型、布尔类型。

字符类型:存放单个字符,用单引号引起来。

整形:整数型,存放整数。

浮点型:存放浮点数,即小数。

布尔类型:表示真(true,可以用非0的数字表示)或者假(false,可以用0表示),只有这两种取值。

二、字符类型

C语言中字符类型用char表示。char类型分为有符号字符类型(signed char)和无符号字符类型(unsigned char),在大多数编译器下char默认为是有符号的。在C语言中,char类型占1个字节,并且char类型是通过ASCII码值存储的,因此可以将字符类型用%d格式化输出。

char的范围是-128~127,unsigned char的范围是0 ~255。

一个字节等于8个比特位。一个比特位存放一个二进制位。当这八个比特位都是1的时候,即    1111 1111(十进制的255),这个数字就是unsigned char最大的值,0000 0000 是最小值。

有符号类型则将第一个比特位作为符号位,1表示负数,0表示正数,剩下的7位表示数值,1111 1111(-128),0111 111(127)。

#include<stdio.h>
int main()
{
    char a = 'w'; //定义一个有符号字符类型
    printf("%c\n", a);  // w
    unsigned char b = 97; //定义一个无符号字符类型
    printf("%c\n", b);  // a

    printf("%d\n",sizeof(a)); // 1
    return 0;
}

这里的代码中的等号是赋值的意思,不是判断是否等于。我们在内存中开辟了一个char类型大小的空间,并且将'w'这个字母存放在了里面。然后给无符号字符类型b赋值了-97。第九行输出了a在内存的大小,占一个字节。

三、整形

C语言中整数类型用int表示,int类型分为short int 短整型,int整形,long int长整型,long long int更长的整形。都分为有无符号。内存占用及范围如下

long 和longlong的内存占用情况根据编译器不同而不同,甚至能看见占16个字节的longlong int类型。

#include<stdio.h>
int main()
{
	unsigned short a = 12345;
	printf("%hu\n", a);
	short b = -23456;
	printf("%hd\n", b);
	unsigned int c = 456789;
	printf("%u\n", c);
	int d = -987547;
	printf("%d\n", d);
	unsigned long e = 9074228;
	printf("%lu\n", e);
	long f = 86;
	printf("%ld\n", f);
	unsigned long long g = 1234567890;
	printf("%llu\n", g);
	long long h = -123456789;
	printf("%lld\n", h);
	return 0;
}

使用时根据情况选择使用哪个类型。

四、浮点型

浮点数就是小数,分为float,double,long double,精度依次增加。

#include<stdio.h>
int main()
{
	float a = 3.14;
	printf("%f\n", a); //3.140000
	double b = -3.1415;  
	printf("%lf\n", b); //-3.141500
	long double c = 2.71845678901;
	printf("%.10Lf\n", c);  //2.7184567890
	return 0;
}

注意:编译器默认的浮点数类型是double

%.10Lf的意思是保留小数点后10位输出long double类型数字。

五、布尔类型

布尔类型需要包含包含头文件stdbool.h,布尔类型就只有true和false两种取值,可以用非零数和零代表并且可以参与运算。布尔类型常用于判断条件。

#include<stdio.h>
#include<stdbool.h>
int main()
{
	bool aa = 0; //创建布尔类型变量
	aa = aa + 1; //把aa+1赋值给aa
	printf("%d\n", aa + 3); //4
	return 0;
}

六、变量

生活中会变得值就是变量,例如,年龄、时间等。

变量在上面也见过了,定义变量的语法是  变量类型 变量名 = 变量值  。如果没有等号赋值的话,则是随机值。

在使用得时候,可以直接用变量名代替变量就行了。

变量得分类:全局变量和局部变量。全局变量不用定义在main函数或者其他函数中,全局变量在整个程序都能用。局部变量只能在当前作用域使用,一般来说就是当前大括号中。当变量同名时,作用域小得变量优先使用。

#include<stdio.h>
char i = 'a'; //创建全局变量
int main()
{
	printf("%c\n", i); //a
	char i = 'w'; //创建局部变量
	printf("%c\n", i); //w
	return 0;
}

输出第一个变量i时是输出全局变量i,然后第二个输出时局部变量就覆盖了全局变量,所以输出是'w'。

变量命名规则

  • 只能包含字母(a-z、A-Z)、数字(0-9)和下划线(_)。

  • 必须以字母或下划线开头,不能以数字开头。

  • 区分大小写,例如 My_name和 my_name 是两个不同的变量

  • 不能使用C语言的关键字,如 intfloatreturn 等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值