标签:元素 告诉 固定 bsp 引入 内存 类型 数据 区别
首先,思考一下c/c++为什么引入数据类型,数据类型的本质是什么?
数据类型这个概念不光是c/c++里边有,C#、.net、Java都有,只不过是类型弱和强的区别。其实,是为了在编译器中方便表达现实生活中的事和物。如:定义一个int类型的变量,就告诉了编译器要分配4个字节的内存,所以数据类型的本质也是固定大小内存的别名。
代码:
int a = 0; //这里告诉编译器分配4个字节的内存
int b[5]; //这里告诉编译器分配4*5个字节的内存
printf("b:%d,b+1:%d\n", b, b + 1);
printf("&b:%d,&b+1:%d\n", &b, &b + 1);
输出结果:
b:14679612,b+1:14679616
&b:14679612,&b+1:14679632
大部分BUG的产生都是因为概念的不清晰。
这里分清楚b 与&b的区别:
b:代表数组首元素的地址 如:一条街的第一个商铺的名(一个商铺4个字节内存)
&b:代表整个数组的地址 如:一条街街名
那么:
b+1: 从第一个商铺偏移到下一个商铺 故:b到b+1地址偏移4 (b:14679612 b+1:14679616 )
&b+1:从一条街偏移到下一条街 故:&b到&b+1地址偏移20 (&b:14679612,&b+1:14679632)
标签:元素 告诉 固定 bsp 引入 内存 类型 数据 区别
原文地址:https://www.cnblogs.com/kevinsharif/p/9099554.html