#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之后的内存空间的值。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/fk5431/article/details/47663171