C之精粹——指针

由于一些原因,我需要回顾一下编程入门语言——C语言,我对于C一直是“犹抱琵琶半遮面”的朦胧美,也可以说是:“** 可远观而不可亵玩焉!”,即便是毕业工作n年的我,依旧是都难以一窥C之芳容。今天我就再来重温一下C的精华——指针**。

指针

官方称指针是一种保存变量地址的变量,怎么来理解这句话呢?我们都从图书馆结果图书,就以此为例来探讨一下指针的来龙去脉。

我们都知道,图书都在图书馆的书架上,且每本书都有对应的编码,这里我们可以将编码理解为每本书所在的地址(位置)。我们可以通过书的地址去查找书,反之也可以利用书名来找到该书所在的地址。这就很类似于我们所声明的变量x,变量x也是要存起来的,它存储于计算机的内存中,对应的内存也有相应的内存地址编号。存储该内存地址编号的变量就称为指向x的指针。

如果不好理解,可以知乎上关于指针的讲解,大家可以借鉴一下;

#include<stdio.h>
main()
{
    int num = 100;//声明一个int型变量num
    int* num_pointer = NULL; //声明一个int型的指针(变量)
    num_pointer = &num;//将num的内存地址赋值给num_pointer,这时num_pointer就是指向num的指针
    printf("变量num的内存地址,也即指向num的指针的值为%0x\n",num_pointer); // 62FE44
    printf("通过指向num的指针num_pointer来获取num的值:%d\n",*num_pointer);//100
  
}

再次说明一下:

  • 一元运算符&用于取一个对象的内存地址;
  • 一元运算符** * **是间接寻址或者间接引用运算符,当它作用于指针时,将获取到该指针所指向的对象;
  • & 和 * 的优先级比算术运算符的优先级高;
  • 声明指针变量时,最好将与类型写在一起,这样更便于理解和查看,如 int pointer ;
  • 指针也是变量;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,533评论 3 44
  • 重新系统学习下C++;但是还是少了好多知识点;socket;unix;stl;boost等; C++ 教程 | 菜...
    kakukeme阅读 20,105评论 0 50
  • 天真浪漫不谙世事, 你是否依旧? 向着阳光笑靥如花, 你是否坚持? 不忘初心,方得始终。
    梓JUn阅读 265评论 0 0
  • 最近有点忙,好几天没画石头画了,每天都觉得少了点什么。趁着周末赶紧画起来。 家里有很多石头,有一些带着天然的花纹和...
    柴门石绘阅读 705评论 3 4