C语言----数据的存储
Posted 4nc414g0n
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言----数据的存储相关的知识,希望对你有一定的参考价值。
数据的存储
数据类型
- 整形类型
char:0-127
(注意:char未规定为是signed char还是unsigned char,但大多数编译器为signed)
signed char: -128-127
unsigned char: 0-255
short int: -32768-32767
unsigned short int: 0-65535
int: -32768-32767
(注意:int为 signed int)
unsigned int: 0-65535
long int: -2147483648-2147483647
unsigned long int: 0-4294967295
- 浮点型类型
- 构造类型-自定义类型
数组:int arr[10]的类型为int [10] int arr[5]的类型为int[5]
struct enum 联合体
- 指针类型
- 空类型
void函数返回类型:void test()
函数参数:void test(void)
指针:void* p
大小端存储
int a = 0x11223344;
- 大端存储:把数据的低位字节序的内容存放在高地址处,高位字节序的内容存放在低地址处
低 11 22 33 44 高
- 小端存储:把数据的低位字节序的内容存放在低地址处,高位字节序的内容存放在高地址处
低 44 33 22 11 高
代码
//判断当前机器大小端存储
//利用char*取&a一个字节内容
int main()
{
int a=1;
char*p=(char*)&a;
if(*p==1)
{
printf("小端\\n");
}
else
{
printf("大端\\n");
}
return 0;
}
1.整型类型
- 例一
int main()
{
char a=-128;
printf("%u\\n",a);
return 0;
}
//-128二进制100000...100000000
//-128补码 111111...100000000
//char截断:10000000
//提升 111111...100000000
//%u无符号 原码等于补码
//结果打印4294967168
- 例二
int main()
{
char a[1000];
for(i=0;i<=1000;i++)
{
a[i]=-1-i;
}
printf("%d\\n",strlen(a));
return 0;
}
//char的范围为-128-127
//-1开始减到-128时再二进制减一就回到127...以此循环
//而strlen计数是找'\\0'而'\\0'的ASCII码为0
//虽然会有栈溢出,但结果255毋庸置疑
以上是关于C语言----数据的存储的主要内容,如果未能解决你的问题,请参考以下文章
我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段
我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段