数据类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据类型相关的知识,希望对你有一定的参考价值。
首先,思考一下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)
以上是关于数据类型的主要内容,如果未能解决你的问题,请参考以下文章
1.19.6.数据类型数据类型列表结构化的数据类型其他数据类型数据类型注解