*p、p以及&p之间的区别

假设我们定义一个指针p。
那么会经常使用到三个符号:
1,p;
2,*p;
3,&p;

  • p是一个指针变量的名字,表示此指针变量指向的内存地址,如果使用%p来输出的话,它将是一个16进制数。
  • *p表示此指针指向的内存地址中存放的内容,一般是一个和指针类型一致的变量或者常量。
  • &是取地址运算符,&p就是取指针p的地址,&p就表示编译器为变量p分配的内存地址,而因为p是一个指针变量,这种特殊的身份注定了它要指向另外一个内存地址,程序员按照程序的需要让它指向一个内存地址,这个它指向的内存地址就用p表示
#include <stdio.h>int main()
{int  var = 20;   /* 实际变量的声明 */int* p;        /* 指针变量的声明 */p = &var;  /* 在指针变量中存储 var 的地址 */printf("Address of var variable: %p\n", &var);/* 在指针变量中存储的地址 */printf("Address stored in p variable: %p\n", p);/* 指针p的的寻出地址地址*/printf("Value of &p variable: %p\n", &p);/* 使用指针访问值 */printf("Value of *p variable: %d\n", *p);return 0;
}

结果如下:

*p和**p的区别

  • int *p :一级指针,表示p所指向的地址里面存放的是一个int类型的值
  • int **p :二级指针,表示p所指向的地址里面存放的是一个指向int类型的指针(即p指向的地址里面存放的是一个指向int的一级指针)

同样地,下面代码增加一个二级指针

#include <stdio.h>int main()
{int  var = 20;   /* 实际变量的声明 */int* p;        /* 指针变量的声明 */p = &var;  /* 在指针变量中存储 var 的地址 */int** p1 = &p; //定义了一个二级指针指向p指针printf("Address of var variable: %p\n", &var);/* 在指针变量中存储的地址 */printf("Address stored in p variable: %p\n", p);/* 指针p的的寻出地址地址*/printf("Value of &p variable: %p\n", &p);/* 使用指针访问值 */printf("Value of *p variable: %d\n", *p);printf("Value of **p1 variable: %d\n", **p1);return 0;
}

运行结果:

C语言中指针*p、p以及p之间的区别以及*p和**p的区别相关推荐

  1. c语言中指针中 - 和 。的区别?

    c语言中指针中 -> 和 .的区别? 例子1:比如有如下结构 typedef strut node{ int data;   strut node * next; } ListNode; Lis ...

  2. c语言字符串加减_C语言中指针的介绍

    C语言中指针的介绍 指针是C语言中广泛使用的一种数据类型. 运用指针编程是C语言最主要的风格之一.利用指针变量可以表示各种数据结构:能很方便地使用数组和字符串: 并能象汇编语言一样处理内存地址,从而编 ...

  3. c语言中*用于指针,关于C语言中指针的理解

    关于c语言中指针的一些理解 这几天在看任哲老师编写的嵌入式实时操作系统uC/OS原理与应用一书,第二章讲到指针的用法,我发现自己有些地方有疑问,就重新看了关于c指针的知识.同时也对指针有了一定的理解. ...

  4. c语言中的指针语法,C语言中指针的用法介绍

    C语言中指针的用法介绍 for(int i=0;i { num+=*s;s++; } return num; ) 这个例子中的函数 fun统计一个字符串中各个字符的 ASCII 码值之和.前面说了,数 ...

  5. C语言中指针的地址和内容

    参考:C语言中指针的地址和内容 作者:wallying 发布时间:2018-10-18 09:47:54 网址:https://blog.csdn.net/qq_36631580/article/de ...

  6. c语言间接寻址与指针,C语言中指针是不是用汇编的间接寻址实现的?

    C语言中指针是不是用汇编的间接寻址实现的? 112 151 更新于 2014-08-05 看到间接寻址,想到指针,它们仅仅是相似,还是说指针就是用汇编的间接寻址实现的? c 关注收藏2 评论 阅读 5 ...

  7. c语言中减号算一个字符吗,C语言中指针的加减运算

    char arr[3]; printf("arr:\n%d\n%d\n%d\n", arr, arr + 1, arr + 2); char *parr[3]; printf(&q ...

  8. C语言指针使用过程中 不需要清零,C语言中指针使用常见问题及解决办法.pdf

    . - - 自 · - j 1- j w - m - - [ - № 实用第一 智慧密集 C语 i觅 及 捧法l j||? l .. 一 摘 要:讲述 了在 c语言中指针使用时所 出现的一些常见问题 ...

  9. 初学者对C语言中指针的爱恨情仇

    C语言中指针和数组的爱恨情仇 文章目录 C语言中指针和数组的爱恨情仇 一.前言 二.为什么学指针 三.说明 四.跟我一起学 (一)C语言中的*和& 1.C语言中为什么存在&和* 2.& ...

  10. c语言指针很危险,浅谈C语言中指针使用不当的危险性.doc

    浅谈C语言中指针使用不当的危险性.doc 第 19 卷 Vol . 19 第 2 期 No . 2 洛阳师专学报 Journal of Luoyang Teachers College 2000 年 ...

最新文章

  1. 编译ceph源码:cython module not found问题的解决
  2. oc75--不可变字典NSDictionary
  3. 0x21.搜索 - 树与图的遍历、拓扑排序
  4. 使用js对来判断一个字符串中括号是否平衡匹配
  5. 【Python基础】使用Matplotlib可视化数据的5个强大技巧
  6. xp系统oracle数据库,Oracle10g 数据库的安装基于windowsXP
  7. 争分夺秒!一大批高校正在加紧扩建......
  8. 在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别
  9. [转贴] 从零开始学C++之异常(二):程序错误、异常(语法、抛出、捕获、传播)、栈展开...
  10. [读书笔记] - 《深度探索C++对象模型》第5章 构造、解构、拷贝语意学
  11. 数据库迁移登录名_如何将数据库的登录名迁移到其他服务器
  12. Typora + PicGo + Aliyun OSS + CSDN
  13. pure-ftpd 配置
  14. 使用C++模板判断是否基本类型
  15. 微信打开网页会出现一个“将要访问”的页面是怎么回事?
  16. Unity机器学习库ml-agents新版本的环境搭建
  17. C++ C1 -namespace-using-域解析符-const-引用
  18. 电脑查找电子书资源,speedceo浏览器下载PDF文件阅读分享
  19. idempotent - 幂等
  20. ssh导出数据库的数据到Excel表格

热门文章

  1. LA 4413 Triangle Hazard 梅涅劳斯定理的应用
  2. 官方代付系统/支付宝微信代付/企业付款/提现秒到
  3. RFNet:基于RGB-D数据的语义分割和意外障碍物检测的实时融合网络
  4. 【每日早报】2019/10/10
  5. 0x00007FFA837F2487 (ucrtbased.dll)处(位于 指针.exe 中)引发的异常: 0xC0000005: 读取位置 0x0000000000000068 时发生访问冲突
  6. 一、零基础入门微信小程序开发之创建项目工程同时完成引导页开发
  7. move lob会不会影响其他索引状态?
  8. 图神经网络:GAT学习、理解、入坑
  9. 如何解决Namespace declaration statement has to be the very first statement or after any declare call
  10. Microsoft Edge:你不能不知道的6个Web开发者工具