【C语言】指针类型的意义(1)

举报
謓泽 发表于 2023/09/28 20:18:50 2023/09/28
【摘要】 【C语言】指针类型的意义(1)

🗡 指针类型的意义(1)

指针类型的意义,代码如下所示↓

int a = 0x11223344;
int *pa = &a;
*pa = 0;

此时,经过调试阶段我们可以发现,首先 a 的地址赋值给指针变量并且对象类型是 int 类型。然后,再通过 解引用 *pa 把原来 &a 的地址变成0,那么通过这个现象,我们就可以知道用int * 进行解引用的话,我们是成功访问到 ④个字节 的地址。是不是可以说明指针访问字节是个字节呢。

int a = 0x11223344;
char *pa = &a;
*pa = 0;

经过调试阶段我们可以发现,首先 a 的地址赋值给 指针变量并且对象类型是 char 类型。然后,再通过 解引用 *pa 把原来 &a 的地址变成0。那么通过这个现象,我们就可以知道用char * 进行解引用的话,而我们是成功访问到 ①个字节 的地址。可以看出只是类型发生了变化,访问权限就会发生变化从这里说明了指针是只能访问个字节的,这是C语言语法标准规定死的


所以从上面两个不同指针对象,我们就可以从中发现。只是不同类型的变化,就可以在调试当中发现它们的访问权限就发生了变化这就从中说明指针类型是具有意义的

如果我是个整形指针(int*)的话,解引用的时候,我去访问一次的话。解引用一次就可以访问个字节。按照上面图中我就可以把个字节全部变成0了。

然而,如果我是一个字符指针(char*)的话。我解引用一次我就只能访问其中的个字节。

通过这个例子可以知道:不同类型指针在解引用的时候就决定它的访问权限有多大

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。