C语言(五):数据类型

int类型


  1. int内存大小

int是32位的一个二进制整数,在内存当中占据4个字节的空间。

2.printf输出int值

%d,输出一个有符号的10进制整数,%u,代表输出一个无符号的十进制整数
%x,代表输出16进制数,%X,用大写字母方式输出16进制数
%o代表输出八进制数

printf("%d",1000);

3.short,long,long long,unsigned int

short意思为短整数,在32位系统下是2个字节,16个比特
long意思为长整数,在32位的系统下,long都是4个字节的,在64位系统下,windows还是4个字节,unix下成了8个字节。
Int不管是32位系统下,还是64位系统下,不论是windows还是unix都是4个字节的
Long long是64位,也就是8个字节大小的整数,对于32位操作系统,CPU寄存器是32位,所以计算longlong类型的数据,效率很低
unsigned int :无符号整型

4.整数溢出

计算一个整数的时候超过整数能够容纳的最大单位后,整数会溢出,溢出的结果是高位舍弃。
当一个小的整数赋值给大的整数,符号位不会丢失,会继承。

5.大端对齐与小端对齐

对于arm,intel这种x86构架的复杂指令CPU,整数在内存中是倒着存放的,低地址放低位,高地址放高位,小端对齐。
但对于unix服务器的CPU,更多是采用大端对齐的方式存放整数
这里写图片描述


char类型


1.char内存大小

char c = ‘a’;定义一个char变量
Char的本质就是一个整数,一个只有1个字节大小的整数

2.printf 输出char

%c意思是输出一个字符,而不是一个整数

char a = 'a';
printf("%c",a);

3.不可打印char转义符

转义符 说明
\a 警报
\b 退格
\n 换行
\r 回车
\t 制表符
\ 斜杠
\’ 单引号
\” 双引号
\? 问号
  1. char 和 unsigned char

char取值范围为-128到127
unsigned char为0-255


浮点数:float ,double,long double 类型


1.浮点数内存大小

Float在32位系统下是4个字节,double在32位系统下是8个字节

  1. prinf输出浮点数

%f,%Lf
%f是输出一个double
%lf输出一个long double

double a = 3.145546565;
printf("%f",a);

字符串:char *


1.字符串内存空间:

字符串是内存中一段连续的char空间,以’\0’结尾
“”双引号是C语言表达字符串的方式
这里写图片描述

猜你喜欢

转载自blog.csdn.net/s17728022507/article/details/74912379