新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
如果你想要不同类型的变量存放在连续地址中,最好的方法莫过于结构体.但是,这里面存在内存对齐的问题,所以,变量的排布有所讲究.一般而言,相同类型变量放在连续空间中用数组就好.
新郑网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。创新互联建站自2013年起到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站。
如果同一个变量 不管是结构体 还是普通变量
内存必然是连续的
如果不是同一个变量 而是几个变量 内存不一定连续
比如
int a;
char b;
int c;
一般来说 a和c的地址不可能连续。
一次分配是连续的,二次直接可能不连续。
比如
void* p = malloc(4);
则p指向连续的4个字节,地址分别是p, p+1, p+2, p+3
void* q = malloc(4);
则q也指向连续的4个字节,地址分别是q, q+1, q+2, q+3
但是这两个函数是挨在一起被调用的,p和q它们之间也不一定连续,
也就是说可能q != p + 4
字符串是一连串地址连续的内存空间
拓展
指针其实是一个整形变量,与其它数据不同的是,它的作用是用来存储其它变量的地址。指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(pointsto)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。再打个比方:有个人让你去麦当劳帮我买个雪糕,那么麦当劳是这个变量a,但是那个人现在把麦当劳所在的地址写在纸上给你,那么这张纸就可以看做一个指向麦当劳的指针。