指针和数组名,我觉得LZ能问这样的问题,说明确实是用心学C了,当然这个对于平时的编程来说无大碍,
但是个人觉得如果深入了解会对C有更深一步的认识。
1、从左值和右值的概念来说,指针一般指的地址变量,数组名是一个地址常量
对于左值和右值的数据间接访问,在语言的语义程面是一样的,但对于有的MCU
编译的汇编的寻址方式可能不同。
2、在大部分情况指针和数组名可以互换,比如函数参数传递,不管是指针还是数组本质传的是一个地址。
3、但在有些情况下指针和数组名是有区别的,比如在sizeof(x)这样的表达式时,如果对于指针得到的是
这个变量的字节数,而对于数组得到的是整个数组的长度。
以上三点是我个人的理解,如有错误,请各位不吝指教! |