C语言指针

指针

  • 通过指针,可以简化一些 C 编程任务的执行,也可以通过指针进行内存的动态分配。
内存地址 &
  • 每一个变量都有一个内存位置,每一个内存位置都定义了可使用(&)运算符访问的地址,它表示了在内存中的一个地址

  • 实例

    #include <stdio.h>
    
    int main() {
        int  num;
        char chars[10];
        
        printf("num 变量的地址: %p\n", &num  );
        printf("chars 变量的地址: %p\n", &chars  );
        
        return 0;
    }
    
  • 输出结果:
    输出内存指向的地址

内存中的值 *
  • 指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。就像其他变量或常量一样,必须在使用指针存储其他变量地址之前,对其进行声明。指针变量声明的一般形式为:
类型 *变量名称;
int *num;
  • 应用:
#include <stdio.h>

int main() {
      // 实际变量的声明
      int  num = 10;
    
      // 指针变量的声明
      int  *pointer;
    
      // 把pointer的地址,指向num地址
      pointer = &num;
    
      // 打印num的地址
      printf("num变量的地址: %p\n", &num  );
    
      // 打印pointer地址
      printf("pointer变量的地址: %p\n", pointer );
    
      // 打印pointer的值
      printf("*pointer的值: %d\n", *pointer );
}
  • 输出结果:
num变量的地址: 0x7ffeefbff54c
pointer变量的地址: 0x7ffeefbff54c
*pointer的值: 10
Program ended with exit code: 0
NULL 空指针
  • 在变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个 NULL 值是一个良好的编程习惯。赋为 NULL 值的指针被称为空指针。
  • 示例代码:
#include <stdio.h>

int main() {
    // 定义一个为空的指针变量
    int  *nullPointer = NULL;
    double *nullDouble=NULL;
      
    // 打印空的指针变量地址
    printf("nullPointer 的地址是: %p\n", nullPointer);
    printf("nullDouble 的地址是: %p\n", nullDouble);

    return 0;
}
  • 输出结果:
nullPointer 的地址是: 0x0
nullDouble的地址是: 0x0
Program ended with exit code: 0
  • 由上面的示例和输出结果可以看出,NULL 指针是一个定义在标准库中的值为零的常量。
  • 在大多数的操作系统上,程序不允许访问地址为 0 的内存,因为该内存是操作系统保留的
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值