栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

数据的存储

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据的存储

 在学数据的存储之前,我们先了解一下何为debug

   debug(调试):除错 发现和减少计算机程序中错误的过程
       发现程序问题的所在
       以隔离,消除等方式对错误定位
       确定错误产生的原因
       提出解决问题的方案
       交给程序重新改正,重新测试

文章目录
  • c语言类型
  • 一、整型存储
  • 二、浮点数的存储
  • 三、内存的具体布局
    • 1.引入库
    • 2.读入数据
  • 总结




c语言类型

     c语言类型==内置类型+自定义类型(构造类型)==整型+浮点型+构造+(数组类型int arr[10] 类型int [10]   结构体类型 枚举类型 联合类型)+ 指针  +空类型

     类型一来决定了这个类型开辟的空间大小,一来决定了如何看待内存空间的视角



一、整型存储

   整型存储 int a=-10;
          内存中存二进制补码:1111 1111 1111 1111 1111 1111 1111 0110
           转换为16进制        ff ff ff f6

    unsigned char(0----2^8-1)  (-127----128)

    
     大端小端:
           大端:数据的高位存在低地址中,低位存在高地址中
           小端:数据的低位存在高地址中,高位存在低地址中
           低地址————————>高地址 
                   11 22 33 44(大端    44 33 22 11(小端

    指针类型解引用决定了指针解引用操作可以访问几个字节 决定了+1或-1加的是几个字节 

        int main()
	{   int a=1;
			char*p=(char*)&a;
			if(*p==1)
		{
			  printf("小端"); 
					   }
			else  printf("大端");  
               return 0;

习题(1) 无符号数>=0 ,所以下面的程序进入死循环。

int main()
{
unsigned int i;
for(i=9;i>=0;i--)
{ printf("%u",i)}
}

习题(2)i== -1 -2 -3... -128 ----->127 3 2 1 0     字符串长度 (到0之前)(127+128=255)

int main()
{
char a[1000];
int i;
for(i=0;i<1000;i++)
{
    a[i]=-1-i;
}
printf("%d",strlen(a));
}


二.浮点型在内存中的存储

1.
int main()
{
  int n=9;
  float *pFloat=(float*)&n;
  printf("%d",n);
  printf("%f",*pFloat);

  *pFloat=9.0;
  printf("%d",n);
  printf("%f",*pFloat);
}
  

      结果为9    0.000000   1091567616    9.000000



(三)内存的具体存储

          计算机内部的程序的内存相互独立(A不可访问B)

内存2区(B)
内存1区(A)

栈区:存储临时变量(当变量超出当前作用域会弹出)

    分别int a,b,c,d,e;则在内存中存储为:

e
d
c
b
a

堆区:开辟大的内存空间(对动态内存进行分配)————开发人员分配,使用完都释放

数据区:存放全局变量,常量,静态变量

代码区:存储可执行代码

     

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/656795.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号