关于C的指针和编译的问题
假设有函数int fun(int n){int a=100} 在编译时,应该给fun分配一个入口地址,是不是函数名字fun就是那个地址,也就是说fun是一个指针,那fun是不是被赋予了一个实际的地址空间(假设为2字节)存放地址,还是说在编译时没有给fun实际的地址空间存放入口地址,而只是在编译字符表里面指定fun的地址呢
因为我打出fun,它是一个地址,如显示为a,然后我又看&fun和*fun都是同一个值,都是a,那上面&fun 和*fun读出来的值到底是什么???还是根本就是一种语法错误,而后编译器就默认给他们都是fun的值呢?????
上面函数中的int a=100在编译时应该也被赋予了一个int型的地址空间,那那个形参int n有没有被赋予实际的地址空间呢???
同样象定义一个数组 int a[3],它在被编译的时候,编译器给它开辟了3个在内存中实际存在的int型空间a[0],a[1],a[2],而数组名字a是一个指针,那a有没有在内存中有实际的地址,从而让a存放数组首地址&a[0]呢,那我打出a的话,它是一个地址(数组首元素的),如显示为b,然后我又打&a他也是显示为b(这是根本就是错C没有这种语法???还是说实际给a分配了内存空间,叫它读a自己的空间地址,但为什么还是和读a是一样的值呢???)