新手专科准大一学习c语言的第11天之指针的学习

指针

指针是C语言中非常重要的一个概念,它可以存储变量的内存地址,从而允许你直接访问和操作该地址上的数据。

以下是利用指针特性完成的一个小函数

实例

#include <stdio.h>

void interchange(int *px, int *py) // 函数的创建
{
    int z = *px; // z=i=1
    *px = *py;   //*px=*py=2
    *py = z;     //*py=z=1
}
int main()
{
    int i = 1;
    int a = 2;
    printf("交换前i=%d,a=%d", i, a);
    interchange(&i, &a); // 函数的调用使用 传入指针参数
    printf("交换后i=%d,a=%d", i, a);
    return 0;
}

函数

interchange 函数

  • 这个函数接收两个指针作为参数(pxpy)。
  • 在函数内部,首先将指针 px 所指向的值(即 i 的值)存储在一个临时变量 z 中。
  • 然后,将指针 py 所指向的值(即 a 的值)赋给指针 px 所指向的地址。
  • 最后,将临时变量 z 中存储的值(原来的 i 值)赋给指针 py 所指向的地址。

 

main 函数

  • 定义了两个整数变量 ia,并分别初始化为 12
  • 程序在交换之前打印出 ia 的值。
  • 调用 interchange 函数,并传入 ia 的地址。
  • 程序在交换之后再次打印 ia 的值。

结果 

交换前i=1,a=2
交换后i=2,a=1

 一个简单且有效的方法,通过使用指针来交换两个变量的值。

总结

指针的危险性

指针的强大之处在于它直接操作内存,但这也使它容易出错。如果指针没有被正确初始化或错误地使用,可能会导致程序崩溃或者产生难以追踪的bug。例如,空指针(指向 NULL)的解引用会导致程序崩溃。

常见的指针类型

空指针NULL,指向内存地址 0,表示该指针不指向任何有效的内存地址。

野指针:指针指向一个未知的或已经释放的内存地址,使用这种指针可能导致不可预知的错误。

指向指针的指针:可以声明指向指针的指针,如 int **pp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值