【C语言】指针

引入

内存如何存放变量

内存中不存放变量,存放的是一堆十六位进制的地址值,编译器就会把这些地址值与相应变量对应起来。

指针

通常所说的指针,就是地址的意思,C语言中有专门存放指针的变量类型指针变量.

  • 跟普通变量不同,指针变量存放的是地址值,所以一个地址是占 4 个字节的空间
  • 指针变量的类型是所存变量的类型

定义指针变量

定义指针变量跟普通变量十分相似,只是中间多了一个星号(*

// 不推荐定义 未初始化的指针变量,不然可能产生意想不到的 Bug。(未定义就会随机分配地址,这很危险)
// 使用指针变量一定要初始化
char *pc;
int *pi;

取地址运算符和取值运算符

如需要获取某个变量的地址,就需要使用 取地址运算 (&)

  • 这里(*) 表示定义指针变量
char c = 'A';
// 取地址值赋值给指针变量
char *pc = &c;

如果需要访问指针变量指向的数据,可以使用取值运算符(*)

  • 这里(*) 表示获取指针变量指向的值。
// 打印出的 原本的值
printf("i = %d \n", *pi);

// %p 打印指针变量的地址值
printf("*pi = %p \n", *pi);

代码

#include <stdio.h>

int main()
{
        // 定义变量
        char c = 'A';
        int i = 123;

        // 获取地址赋值给指针变量
        char *pc = &c;
        int *pi = &i;

        // 打印 原本变量
        printf("c = %c \n", *pc);
        printf("i = %d \n", *pi);
        // 打印地址值
        printf("*pc = %p \n ", &pc);
        printf("*pi = %p \n", &pi);

        return 0;
}

mark

发表评论 / Comment

用心评论~