在Head First C一书中,它说计算机不会为数组的变量名分配内存。我很困惑!这是真的吗?
但是如果它有内存,为什么我不能为这个分配另一个数组呢?
计算机程序是描述您希望执行的功能的抽象。编译器获取您的描述并将其转换为计算机执行的机器代码。
一个比喻:
我告诉你“走两个街区,左转走一个街区”。然后你就可以去商店了。我也可以说“走到你看到左边的蓝色建筑,转 270 度然后走到你看到商店”。在这两种情况下,你都会做同样的事情,但是指令(这个比喻中的程序)是完全不同的,有不同数量的字符和动词,等等。
C 语言中的计算机程序是相同的——不管你如何命名变量——如果你调用变量“a”或调用变量“,计算机实际运行的代码将占用相同的空间。一个非常长的变量名称”。编译器将跟踪名称,但最终输出将是相同的。
您用来命名数组的标识符是一个指针,它实际上保存了该数组的基地址(第一个元素的地址)。
因此,您可以将此地址分配给另一个指针,但将其分配给另一个数组基地址是不合法的