C语言数据类型和变量
数据类型介绍
类型:相似的数据所拥有的共同特征
数据类型分为内置类型和自定义类型
内置类型是C语言本身具有的,自定义类型是自己创造的
字符型
char //character
[signed] char //有符号的
[unsigned] char//⽆符号的
整型
short [int]//短整型
int//整型
long [int]//⻓整型
long long [int]//更⻓的整型、
//带[int]可以忽略
浮点型
float//单精度浮点型
double //双精度浮点型
long double//更高的精度
布尔类型
表示真假的变量——布尔值_Bool / bool
C语言中规定:0表示假,非0表示真
布尔类型的使用得包含头文件 <stdbool.h>
布尔类型变量的取值是: true 或者 false
各种数据类型的长度
sizeof 操作符
sizeof是一个关键字,也叫操作符,⽤来计算sizeof的操作符数的类型⻓度,
单位是字节(Byte),比特位(bit)
1个2进制位的存储需要1个bit位的空间
> 1Byte= 8bit 1KB = 1024Byte
> 1GB = 1024KB 1TB = 1024G
> 1PB = 1024TB 1024 = 2^10
sizeof 操作符的操作数可以是类型,也可是变量或者表达式
sizeof 表达式
sizeof(类型)
sizeof 的操作数是变量的时候,可以省略掉后边的括号的。
#include <stdio.h>
int main()
{
int a = 2;
printf("%zd\n", sizeof a);
printf("%zd\n", sizeof (int));
printf("%zd\n", sizeof (5 + 6))//表达式不可以省略括号
return 0;
}
sizeof 后边的表达式是不真实参与运算的,根据表达式的类型来得出大小。
#include<stdio.h>
int main()
{
short a = 5;
int b = 3;
printf("%zd\n", sizeof(b = a + 5));
printf("%d\n", b);
return 0;
}
sizeof的返回值是无符号的整数,sizeof 的计算结果是 size_t 类型的,占位符用 “%zd“ 来打印
常见的一些类型长度:
C语言标准规定:sizeof (long) >=sizeof (int)
signed 和 unsigned
signed 关键字,表示⼀个类型带有正负号,包含负值;
unsigned 关键字,表示该类型不带有正负号,只能表示零和正整数。
int类型
signed int a; //同于int a;
unsigned int a;//int可省略,等同于unsigned a;
//对于有符号的整数打印应该使用%d,即带有负号的
//对于无符号的整数打印应该使用%u
#include <stdio.h>
int main()
{
int num = -10;
unsigned int num1 = 50
printf("%d\n", num);
printf("%u\n", num1):
return 0;
}
char类型
char是否有符号取决于编译器的实现,大部分的编译器上 char = signed char。
signed char c; // 范围为 -128 到 127