What the 数据类型

在C语言中的数据分为内置类型与自定义类型,今天让我们来一起认识认识内置类型:

字符型,整型,浮点型,布尔类型

字符型

char   ===>character

可以分为有符号型(signed),无符号型(unsigned)。其中有符号型可默认不写,但在输出函数中必须标识无符号型。有符号类型的取值范围是从-128到127,而无符号类型的取值范围是从0到255。这种区别主要是因为有符号类型的最高位被用作符号位,表示正负性,而无符号类型则将所有位都用作数字位。

因此,当使用有符号类型时,最高位为1时表示负数,为0时表示正数或零。而在使用无符号类型时,所有位都表示数字,因此取值范围比有符号类型大一倍。

需要注意的是,当使用有符号类型时,需要考虑到符号扩展问题。例如,当将一个有符号的char类型转换为int类型时,如果最高位是1,则在扩展时会自动填充1,即进行符号扩展。而当将一个无符号的char类型转换为int类型时,则不会进行符号扩展。

  • 字符类型至少占用 1 个字节;
//如何初始化一个字符
1.可以使用字符常量
char ch = 'A';  //定义一个字符是要使用单引号括起来
2.使用ASCII码值
char ch = 65; //在ASCII码表中65-90表示A-Z,97-122表示a-z,48-57表示0-9,0-31表示不可打印字符
  
//如何初始化一个字符串
1.使用字符数组
char str[10] = "Hello"; //str是一个包含了10个字符的数组,其中每个字符都初始化为Hello
2.使用strcpy()函数
char str[10];  //定义一个包含10个字符的数组str
strcpy(str,"Hello");  //使用strcpy()函数将“Hello"复制到str中。注意的是,当使用字符数组初始化字符串时,字符串的长度必须是固定的,并且不能超过数组的大小。而使用 strcpy() 函数初始化字符串时,可以指定字符串的长度,并且可以根据需要调整字符串的长度。


//如何打印字符,字符串
eg:printf("%c\n",'q');
eg:printf("%s\n","China");

整型

int  ===>integer

同上也分为有符号型(signed)与无符号型(unsigned)。有符号整型可以表示正数、负数和0,而无符号整型只能表示非负数。标准规定int的最小取值范围是 -32767 到 32767,无符号int的范围为0 至 65,535。除此之外,C 语言还提供了四个可以修饰int的关键字:short、long、signed,以及 unsigned。

1)short int(可简写为 short),和int一样,也是有符号整数。其范围为-32768至+32767

 2) long int(简写:long),为有符号整数。其范围为-2,147,483,648 至 2,147,483,647

3) long long int(简写:long long),为有符号整数,其范围为-9 223 372 036 854 775 808 至      9 223 372 036 854 775 807

4) unsigned short int(简写:unsigned short),无符号整数, 不能表示负数,其范围为0  至 65,535 

5) unsigned long int(简写:unsigned long),无符号整数, 不能表示负数 ,其范围为   0  至         4 294 967 295

6) unsigned long longint(简写:unsigned long long),无符号整数, 不能表示负数,其范围为0 至18 446 744 073 709 551 615

  • short 类型至少占用 2 个字节;
  • long 类型至少占用 4 个字节;
  • 而 long long 类型至少占用 8 个字节。
  • sizeof(short) ≤ sizeof(int) ≤ sizeof(long) ≤ sizeof(long long)
//如何初始化一个整数
int a = 0; //未初始化的局部变量无法使用,值为随机的。全局变量可以不用初始化,会默认为0


//打印unsigned int类型的值,使用%u
//打印unsigned long类型的值,使用%lu
//打印long long类型的值,使用%lld和%llu分别表示有符号与无符号类型
//打印long类型,使用%ld
//%lx表示以十六进制(hexadecimal )格式打印long类型
//%lo表示比八进制(octal)格式打印long类型
//%hd表示以十进制(decimal)格式打印short类型
//%ho表示以八进制(octal)格式打印short类型
//%hu代表以 unsigned short格式输出整数
//%hx 代表以16进制的 输出short类型的整数
eg: printf("dec = %d, octal = %o, hex = %x\n",x,x,x);
    printf("dec = %d, octal = %#o, hex = %#x\n",x,x,x);

浮点型

f    ===>float   ;lf  ===>double;   Lf ===.long double

浮点数也称为小数或实数。可以分为float(单精度浮点型)和double(双精度浮点型)和long double(更长的双精度浮点型)。float只能表达6-7位的有效数字不能用“==”判断两个数字是否相等,double能表达15-16位有效的数字可以用“==”判断两个数字是否相等,long double占用的内存是double的两倍,但表达数据的精度和double相同

*存储方式:浮点数在计算机中以二进制的科学计数法表示。它由三个部分组成:符号位、指数位和尾数位。符号位表示浮点数的正负,指数位表示 2 的幂,尾数位表示浮点数的精度。

*范围:浮点数的范围取决于其位数。在 C 语言中,float 类型通常是 32 位,这意味着它可以表示的范围大约是 -3.4E38 到 3.4E38。精度:浮点数的精度是指它可以表示的小数位数。由于浮点数使用二进制表示,所以它可能无法精确表示某些十进制小数。这被称为浮点数的舍入误差。

*浮点数运算:在 C 语言中,浮点数的运算遵循 IEEE 754 标准。这包括加法、减法、乘法、除法等基本运算,以及一些特殊的运算,如三角函数、指数函数和对数函数。

*类型转换:在 C 语言中,可以将浮点数转换为其他数值类型,如整数类型。这种转换可能会导致精度损失,因为整数类型的范围通常比浮点数小。

布尔类型

bool  /Bool

布尔类型是编程语言中表示逻辑的数据类型,一般用于逻辑值 ==>真(true)/假(false)

注:在编程语言中认为0为假,非0值为真,故常用1,0表示真假。

在使用布尔类型时,要有头文件#include<stdbool.h>

#include<stdio.h>
#include<stdbool.h>
int main()
{
 _Bool flag = true;
    if (flag)
 printf("i like C\n");
 return 0;
}

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值