【c语言】指针进阶

创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡>𖥦<)!! 

主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!

给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ

目录

指针变量不固定!!! 

指针分配内存

空指针不被分配内存!!!

对空指针取地址(危险)

指针一定要有初始值!!!

野指针


指针基础知识:
c语言指针详解http://www.t.csdn.cn/RZIkZ

指针变量不固定!!! 

操作系统会为程序分配随机不同的内存空间,在不同的内存空间中分配的变量地址也是不同的

指针分配内存

分配内存给指针是指在程序中动态地为指针变量分配一段内存空间,使得指针变量可以指向该内存空间,并且可以通过该指针变量对该内存空间进行读写操作。 

空指针不被分配内存!!!

空指针不会被分配内存,因为空指针本身就是一个指向内存地址为0的指针,没有实际的内存空间。 

对空指针取地址(危险)

对于空指针取地址,每次的结果不一样是因为操作系统将内存空间分配给不同的程序和进程。它会尝试取地址,但是由于没有分配内存给该指针,所以结果是不确定的,因为可能会分配给其他程序或者空闲的内存空间。 

对空指针取地址是非常危险的行为,可能会导致程序崩溃或不可预期的结果。因此,应该避免对空指针取地址。

指针一定要有初始值!!!

指针需要有初始值,因为使用未初始化的指针可能会导致程序崩溃或者出现未定义的行为。在没有为指针分配有效的内存或者确定它指向的地址之前,任何对指针所指对象的访问都是非法的。因此,在使用指针之前,一定要给它赋初值,可以将其初始化为NULL或者一个有效的地址。

野指针

野指针是指未初始化或者已经被释放但没有置为NULL的指针。使用野指针进行访问可能会导致程序崩溃或者出现未定义的行为,因为这些指针指向的内存地址是不确定的或已经被释放,所以无法保证其内容的正确性。为了避免出现野指针问题,我们应该在声明指针变量时,将其初始化为NULL,当指针不再需要时,及时将其置为NULL。在使用指针时,也要确保其指向合法的内存地址。

#include<stdio.h>
int main()
{
    int* p = NULL;

    int** p2 = &p;

    printf("%p\n", p);
    printf("%p\n", p2);
    printf("%p\n", &p);
    return 0;
}

 

多级指针

多级指针是指一个指向指针变量的指针,它可以被用来在函数之间传递指针或动态分配内存

1.动态内存分配:能够返回指向已经动态分配内存的指针,同时引用这个指针。

2.传递参数:通过传递指向指针的指针,可以允许被调用的函数修改指向指针的指针所指向的变量。

3.错误处理:当函数出错时,该函数会返回一个错误代码,并且将其错误信息存储在指向指针的指针所指向的位置中,以便调用者可以检查并处理错误。

4.多重间接寻址:允许在需要多重间接寻址的情况下进行操作,例如在链表等数据结构中使用。

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天喜Studio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值