数据类型的理解
2015-08-14 16:11
190 查看
#include<cstdlib> #include<cstdio> #include<iostream> using namespace std; int main() { int a; //编译器分配 4个字节的空间 int b[10]; ////编译器分配 40个字节的空间 int *p; a = 10; printf("%d\n\n", &a); //275223 *((int*)2752232) = 300;//间接赋值 直接给地址 cout << a << "\n\n"; { p = &a; *p = 300; } cout << "b:" << b << ", b+1:" << b+1 << ", &b" << &b << ", &b+1" << &b+1; return 0; }
数据类型只是固定内存大小的别名,我们通过数据类型定义一个变量,那么变量其实就是一段连续内存空间的别人。我们通过变量向内存中读写数据。我们可以向上定义一个a直接让a=10,那么就是直接修改它的数据类型;既然我们通过变量修改内存上的数据,那么我们可以直接得到a在内存的地址,间接的修改a的值,也可以通过一个变量间接赋值。
数据类型的标示意义:
数据类型的所占的字节数可以这样理解,当我们写作文的时候,必须了解到一个字占多少格吧,方便我们书写和研读,这是一个道理,只有定义好了数据类型,知道相应的 字节范围,才能更好的存储数据,防止数据溢出(就相当于写作文时我们的纸张不够用),我们才能更方便的使用。
我们用数据类型定义数组的时候,int b[10] 编译器就是分配40个字节空间给它,b代表的是数组的首元素的地址,而&b代表的是整个数组的地址。因而&b+1的到值是在内存空间中数组b之后的内存空间的值。
相关文章推荐
- KVC和KVO
- HDU2094:产生冠军
- Catch That Cow
- 菜鸟笔记之---js div 弹出层
- jQuery---分类添加内容
- 62. Event shiftKey 事件属性
- C. Replacement-----(Codeforces Round #316 (Div. 2))
- awk学习
- 手机APP
- 黑马程序员--Java之IO流
- MongoDB之索引
- 20个高级面试总结
- C++ CTime COleTime的一些操作技巧
- css定义多重背景动画
- C++,你是真实的世界
- android 监听其它app的错误或者崩溃的方法 (ProcessErrorStateInfo)
- android apk嵌套 从一个apk启动另外一个apk
- 网络设备开军火发库(libnet,libpcap,pfring,dpdk)
- python—networkx:求图的平均路径长度并画出直方图
- matlab/C混合编程--mex文件的编写、编译、调用