打印
[ARM入门]

C语言指针的内容

[复制链接]
1814|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
硬件pcb在线|  楼主 | 2021-12-18 14:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
但在指针的内容里面,还有一个知识点叫做:指针指向对象的类型。比如,在int  *a中,指针指向对象的指针类型是int。它描述了指针指向的那个对象的类型。那么我举一个比较难的例子。int  (*a)[10]中,变量名是什么?变量的类型是什么?指针指向对象的类型又是什么?按照上面我说的那个方法,变量名是a,变量的类型是除了变量名之外的内容,就是int  (*)[10],那指针指向对象的类型是什么嘞?是int [10]。这里也有一个规律,那就是除了*变量名之外的的内容,就是指向对象的类型。
        而在赋值的时候,比如:int a=10; int  *b;我们是不能这样赋值的:b=a;这样是完全错误的,a是一个数值,而b是一个指针,指针指向一个地址,我们不能把值10赋给一个地址。因此我们如果要赋值只能这样做:b=&a。把a取地址就可以赋值给指针了。
        同时,在赋值的时候还有一个非常重要的知识点。比如,int  *a;char b;我们这时候不能这样赋值:a=&b;因为他们的类型不匹配,只有当b的类型是int型时,才能取地址赋给相同类型的指针a。
        平时我们会经常看到一个高大上的说法:比如指针变量a指向了b变量。其实这句话的涵义就是指针变量a存储了变量b的地址。即指针变量指向谁,就存储了谁的地址。这样就好理解很多了吧。
        相信通过这次举的一些例子,大家对这几个知识点有个比较清晰的认识了,以后遇到这类问题,不要看错了哦。

使用特权

评论回复

相关帖子

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

本版积分规则

56

主题

56

帖子

1

粉丝