学习小结
c语言数据的存储学习笔记汇总
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//数据的存储
//1、数据类型的详细介绍
//2、整形在内存中的存储:原码 反码 补码
//3、大小端字节库介绍及判断、
//4、浮点型在内存中的存储解析
//c语言的类型分为两类
//1、内置类型(语音本身自带的类型)
// char
// short
// int
// long
// float
// double
// ……
//2、自定义类型(构造类型)
//数组类型
//结构体类型 struct
//枚举类型 mnum
//联合类型 union
//{
// int a = 10; //0a 00 00 00
// float f = 10.0; //00 00 20 41
// //printf("%d\n", sizeof(int)); //4
// //printf("%d\n", sizeof(float));//4
//
//
// return 0;
//}
//指针类型
//空类型
//void 表示空类型(无类型)
//int main()
//void test(void)//括号内放void,表示不需要参数
//{
// printf("hehe\n");
//}
//int main()
//{
// test();
// return 0;
//}
//整形在内存中的存储
//int main()
//{
// int a = 20;//14 00 00 00
// int b = -10; //f6 ff ff ff
// return 0;
//}
//对于整形来说,数据存储到内存中的是补码
//在计算机中,数值一律用补码来表示和存储
//判断当前机器的字节序是什么
//int check_sys()
//{
// int a = 1;
// char* p = (char*)&a;
// if (*p == 1)
// {
// return 1;
// }
// else
// {
// return 0;
// }
//}
//int main()
//{
// //int a = 1;
// //char* p = (char*)&a;
// printf("%d", *p);
// //if (*p == 1)
// //{
// // printf("小端\n");
// //}
// //else
// //{
// // printf("大端\n");
// //}
// //如果返回1,表示小端
// //如果返回0,表示大端
// int ret=check_sys();//检测大小端
// if (ret == 1)
// {
// printf("小端\n");
// }
// else
// {
// printf("大端\n");
// }
// return 0;
//}
//%u 打印的是十进制的无符号数字
//int main()
//{
// int i = -20;
// unsigned int j = 10;
// printf("%d\n", i + j);
// //按照补码的形式进行计算,最后格式化成为有符号整数
// return 0;
//}
//#include<windows.h>
//int main()
//{
// unsigned int i;
// for (i = 9; i >= 0; i--)
// {
// printf("%u\n", i);
// Sleep(100);//让执行速度停一会
// }
// return 0;
//}
//一个char的范围为-128到127
//#include<string.h>
//int main()
//{
// char a[1000];
// int i;
// for (i = 0; i < 1000; i++)
// {
// a[i] = -1 - i;
// }
// printf("%d ", strlen(a));//255
// return 0;
//}
//unsigned char i = 0;//unsigned char 类型能够存放数字的范围是0到255
//int main()
//{
// for (i = 0; i <= 255; i++)
// {
// printf("hehe\n");
// }
// return 0;
//}
//无符号数容易导致死循环,注意无符号的使用范围
//浮点数在内存中的存储
//int main()
//{
// double d = 1E10;//1E10是浮点数的科学计数法表示形式
// printf("%f\n", d);//10000000000.000000
// return 0;
//}
//#include<limits.h>//此头文件可以查看char short int long 的取值范围
//#include<float.h>//此头文件可以查看浮点数的取值范围
//根据国际标准IEEE(电子和电气工程协会)754,任何一个二进制浮点数V,可以表现为
//(-1)^s * m * 2^E
//9.0
//1001.0
//(-1)^0 * 1.001 * 2^3
//(-1)^s * m * 2^E
//int main()
//{
// int i = 9;
// float* p = (float*)&i;
// printf("%d\n", i);
// printf("%f\n", *p);
//
// *p = 9.0;
// printf("%d\n", i);
// printf("%f\n", *p);
// //由此上可知float和int类型在内存中的存储方式不一样
// //整形存储的是二进制的补码
//
// printf("%d\n", sizeof (float));
// return 0;
//}
以上代码均在vs2022环境下编译