Quick actions

cmd+k|ctrl+k

Navigation

Languages

指针的理解

Snippet info

Language

C

Visibility

public

Author

qwas

Created

2024-04-24T07:10:15.954834Z

Updated

2024-04-24T08:07:13.24324Z

#include <stdio.h>

int main(void)
{
  int *p = NULL;
  printf("p是一个指针变量,值为 NULL\n");
  printf("p值为: %p\n\n", p);

  int b = 10;

  printf("b是一个整形变量,值为 b==10\n");
  printf("b值为: %d\n\n", b);

  p = &b;
  printf("用&符号, 获取了变量b的内存地址,p 保存了变量b的地址, p == 0x...\n");
  printf("p值为: %p\n\n", p);


  printf("用 * 可以取出指定 **地址变量** 对应的值 *p == b ==10\n");
  printf("*p值为: %d\n\n",*p);
  
  *p = 100;
  
  printf("*p 可以被赋值,修改*p 的值,b的值也被修改了\n");
  printf("*p值为: %d\n\n",*p);
  printf("p值为: %p\n\n", p);
  printf("b值为: %d\n\n", b);

  return 0;
}

// 不管类型如何,指针变量占据4个字节

//  * 取得 地址对应的变量值
//  & 取得 保存变量的地址值

//  * 打开地址的房间, 可读可写  写入时,称为间接引用
//  & 取得信封地址信息

// *p 声明一个盒子,整体是一个变量
// p 是地址

INFO