回答一:
对于变量,地址在编译时就可以确定,生成直接寻址指令访问这个变量;
对于指针变量,编译时它的值一般不能确定,需要用额外的存储单元(例如寄存器)保存,生成间接寻址指令访问指针指向的对象。
回答二:
int a=10;
int *p=&a;
首先,a变量存在内存里的一块位置这个位置里包含a变量的名称和数值 假设这个地址的地址号是1001,那么计算机就要先找到a对应的地址号也就是1001然后在从里面取出a的值.... 而通过p p就是存放着1001的地址号 也就是直接就知道a存放的地址号就可以取出a的值
回答三:
指针在符合型参数传递时候具有很大优势,只需传递地址,不需要拷贝整合内存数据,不论是时间还是空间都高效率,包括数组以及结构体在传参的时候会传递head和addr