指针和数组的不同点

[复制链接]
6475|29
常来21IC 发表于 2011-4-12 00:08 | 显示全部楼层
最大的却别:指针灵活,它指向的内存地址可变;数组名死板,指向的地址不能由程序员随意更改。

用数组名来传递一个内存地址时,数组名看起来和指针一摸一样;程序跑起来以后,程序员可随意修改指针指向内存地址,但不能随意修改数组名指向的内存地址。

实际应用中,不必纠结与他们之间的区别,代码能满足需求(功能、性能、可读性、可移植性)即可!
clingos 发表于 2011-4-12 08:56 | 显示全部楼层
指针和数组名,我觉得LZ能问这样的问题,说明确实是用心学C了,当然这个对于平时的编程来说无大碍,
但是个人觉得如果深入了解会对C有更深一步的认识。
1、从左值和右值的概念来说,指针一般指的地址变量,数组名是一个地址常量
     对于左值和右值的数据间接访问,在语言的语义程面是一样的,但对于有的MCU
     编译的汇编的寻址方式可能不同。
2、在大部分情况指针和数组名可以互换,比如函数参数传递,不管是指针还是数组本质传的是一个地址。
3、但在有些情况下指针和数组名是有区别的,比如在sizeof(x)这样的表达式时,如果对于指针得到的是
     这个变量的字节数,而对于数组得到的是整个数组的长度。

以上三点是我个人的理解,如有错误,请各位不吝指教!
neseae 发表于 2011-4-12 09:57 | 显示全部楼层
学习一下
mingmwcom 发表于 2011-4-12 10:13 | 显示全部楼层
我来学习了
 楼主| abin0415 发表于 2011-4-12 12:53 | 显示全部楼层
受教了,只从发了这个帖子,我才学会了如何发帖。:D
老鱼探戈 发表于 2011-4-12 13:22 | 显示全部楼层
围观20L
老鱼探戈 发表于 2011-4-12 13:26 | 显示全部楼层
请教高手,如何跳转?

在一个main( )主函数中,C程序如何跳转(不是调用)到 f1()函数?


、、
刘前辈 发表于 2011-4-11 17:18


用goto语句吧,不过不建议这样用
出个标志位再进入f1() 好些
yalingcat 发表于 2011-4-12 17:20 | 显示全部楼层
慢慢体会
richardnee 发表于 2011-4-17 23:44 | 显示全部楼层
把C和汇编联系起来,融会贯通了,一切也就ok了。可以把C编译成汇编,对比下
sdpz 发表于 2011-4-18 15:26 | 显示全部楼层
用goto语句吧,不过不建议这样用
出个标志位再进入f1() 好些
老鱼探戈 发表于 2011-4-12 13:26



就算建议了也用不了哦。goto语句只能在函数作用域内使用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部