关于《高质量程序设计CC++语言》的编译时地址分配的问题
首先问一个问题,
int func()
{
int a[2],b;//问下这个b,a[0]和 a[1]的地址是什么时候分配的啊?编译时候还是运行的时候
return 0;
}
再看书中的话,作者说了这么一句话(见里面的红线) 有点不理解,望大侠指点。
编译时只确定了运行时需要的内存大小,地址分配是程序运行加载时os来管理的,你的程序无权直接控制
那书中的话是说:数组下标k是一个变量,它在编译时候是没有值的。//这个话是嘛意思阿 ?
本来就是这样啊,那里是个循环体,在汇编层就由跳转指令,比较指令,数据构成的一段指令,下标只会对应一段地址初始值。就算这样你不能理解,换个方式,如果k那里循环5万次,是不是就得有5万个值放在内存