C++扩展数据类型
来源:互联网 发布:万网域名证书查询 编辑:程序博客网 时间:2024/06/06 15:00
字符数组
先来看看计算机中所占内存的情况 int b=2,char e=66在内存中占据的情况
Chare占一个字节,在计算机中的地址是:0x00FAF91B 16447771,前面是16进制后面是10进制,他的值是16进制的42,10进制就是66;
再看int b在内存中情况
Int占4个字节,在计算机中的地址是:0x00FAF90C 16447756;
再看int c内存情况
分析得知char e和intb内存地址分别为16447771,16447756,相差15说明不是相邻的,int c的指针是16447744也和intb相差12个字节,说明不是相邻的;
现在有一种方法就是让两个类型相同的数据变量相邻,并让它们组成一个块,我们就叫它数组表示方法是 类型 变量名[指针数],int a[5];为了更好的明白我现在把显示改为4字节的整数查看
从上面看出当我们用int a[5]={1,2,3,4,5}的时候内存开辟了5个渣啊而且还是相邻的每个相隔4字节,现在来观察a的地址:0x00FAF8E4 16447716,下面分别观察a[0]->a[4]的地址
A[0]的地址为:0x00FAF8E4 16447716,来看a[1]
A[1]的地址为:0x00FAF8E8 16447720,来看a[2]
A[2]:0x00FAF8EC 16447724,来看a[3]
A[3]:0x00FAF8F0 16447728,来看a[4]
A[4]:0x00FAF8F4 16447732,来看a[5]
A[5]:0x00FAF8F8 16447736,但是此时他的值是cccccccc,10进制为:3435973836,我们没有把这个值写到内存
综上可得,a的值就是指针&a[0]的值,说明inta[5],这里的a是指针,查询内存中的地址的时候直接用a或者&a,当我们用解除指针(*a)的时候此时就是&a[0]这个地址的值了,所以我们对inta[5],a解除指针的时候的值等于a[0];
上面是把数组分配到渣里面,分配到堆里 int *a=new int[5];
注意:取数组的值用值+[n]表示,值就是变量名,n是第几个指针默认0表示第一个指针的值,数组定义的指针数里面的值可以是空
现在来看下二维数组int aa[2][5]={{1,2,3,4,5},{6,7,8,9,10}},在内存中占据的情况:
从上图可以看出这个二维数组的值是相邻的,此时的二维数组aa指针是:0x00CFF70C 13629196,一维数组aa[0]:0x00CFF70C 13629196,一维数组aa[1]:0x00CFF720 13629216,此时在vs里面查内存地址的时候二维数组aa,一维数组aa[0],aa[1]都可以不用加&,说明aa[2][5],aa[0],aa[1]他们都是数组,只不过维数不一样,[2],这表示的这个二维数组里面有2个一维的数组,[5]表示的是每个一维数组里面有5个值,aa[2][5]的指针与第一个一维数组的指针一样,第二个一维数组的指针和第一个一维数组的指针相差20,一个int占4个字节,则说明中间相隔了5个int的字节,也就是一维数组aa[0][5]所占的字节数啦;现在来看下每个一维数组的值的指针情况:
此时再来看看&aa[1]的值的指针情况:
分析两个一维数组说明了什么呢?当我们要取去数组里面的值时候,其实用一维数组可以全部取出来的,只不过为了方便设置了多维;现在来看看实际操作中aa[0][5],aa[1][0]他们的值能不能正常调出来,是不是相等:
从上面可以看出一维数组int a[10]与二维数组int a[2][5]存储的数据大小都是一样的,第一个可以存10个int类型的数据,第二个也可以存储10个int类型的数据,只不过后者把10个数据分成了2个组!
注:多维数组表示法:int a[维数][每个维数里有多少个数据],int d[a][b]==int d[a*b],指针分配到堆的方法:int *d=new int[a*b]
- C/C++ 数据类型扩展
- oracle 12c:新特性-扩展数据类型
- C#:对Int32数据类型直接增加位测试扩展方法
- 采用扩展方法实现数组中数据类型转换(c#)
- linux c中关于今本数据类型和扩展数据类型对codesize的影响和详解
- 用C的数据类型宽度扩展来解释char c=128;printf("%d",c);问题
- C51的扩展数据类型
- 数据类型转换 符号扩展
- 扩展Hibernate的数据类型
- C++扩展数据类型
- C语言基本数据类型及其扩展和可移植性问题
- Oracle 12C 新特性之扩展数据类型(extended data type)
- C 扩展
- c 扩展
- C 数据类型
- C 数据类型
- c--数据类型
- C 数据类型
- CCF CSP第十一次认证考试 20170917
- 2017 ACM/ICPC Asia Regional Qingdao Online 1001/HDUOJ 6206 Apple
- (四)数据结构之线性表的简单应用:多项式求和
- 事件分发
- SQL中存储过程和函数的区别
- C++扩展数据类型
- Finally关键字和return的研究
- 题目56-阶乘因式分解(一)
- 使用动画的注意事项
- python的标准输入输出
- Git学习日记(5)
- 【模式】の基础——设计模式
- [LeetCode] 5. Longest Palindromic Substring
- 【FirstKotlinApp】自定义Behavior实现布局协同