打印

指针

[复制链接]
851|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
keer_zu|  楼主 | 2014-12-21 14:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
指针就是一个地址,在8位,16位,32位寻址系统里面,分别占1、2、4个字节,寻址能力:256、64K、4G。

"指针"的差别就在于所指定的数据类型上面。
* 如果是一个char,和这个指针相关的就是该指针里面存放的地址所指向的那个字节。
* short、int类型指针所指向的是这2/4个字节数据的基地址,地址增长方向以大小端特性而定。
* struct和class类型指针同上述short和int类似,都是所指数据块儿的基地址,特别是第一个成员的基地址。struct/class可以通过指向他们的指针访问成员,具体形式如:
                                   cur_struct_pointer->member1;
来访问。亦可以通过其成员指针得到整个结构体指针。
* 函数指针起始就是一个函数的入口地址,它是函数被调用时跳转到的目的地址。不同的函数类型因为其返回值和参数个数/类型不同而有所不同。所以指向不同函数的指针类型就区别在这里,其实就是告诉编译器,该函数的数据传递(参数和返回值)方式。

*还有一个很重要的void 类型指针,其实就是为了传递数据方便而已,它可以被各种类型指针赋值,但是不能给别的具体类型指针直接赋值,在使用它们的时候需要强制转换类型。


在我看来,指针也就这些了。  至于指针的声明方法和上述指针本质无关,这是C语言的语法问题,该就近的就近,该先左后右的先左后右,等等。所以指针本身其实很简单,只是在需要内存(堆内存)的申请和释放(malloc和free)的时候,多些注意,不过这又是另外的问题了。和指针无关。

相关帖子

沙发
zhonglong1215| | 2014-12-21 22:28 | 只看该作者
新手对指针总是不知所措,但是一旦了解指针无非就是内存操作时就能明白得差不多了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群:49734243 Email:zukeqiang@gmail.com

1352

主题

12436

帖子

53

粉丝