1.指针变量和普通变量的区别

指针的实质就是个变量,它跟普通变量没有任何本质区别。

指针完整名字的叫指针变量简称为指针

2.指针的间接寻址

指针的出现是为了实现间接访问。在汇编中都有间接访问,其实就是CPU的寻址方式是间接的。

3.指针变量的目的

指针变量就是存放的地址,通过地址加*号来间接访问内存 .

变量的本质:int a = 10;

  • 系统分配一块地址
  • 这个地址只能存放 int 型数据
  • 给这个地址取名 count
  • 在这个地址上存着一个整数:10

指针的本质:int *p = &count;

  • 系统分配一块地址
  • 这个地址只能存放 int * 型数据
  • 给这个地址取名 p
  • 在这个地址上存着一个地址:count的地址
#include <stdio.h>
void test(char **p,int num){*p=(char*)malloc(sizeof(char)*num);  //此时*p就变成了是形参(实参)本身的地址,*p <==> &strprintf("p = %p, *p = %p\n",p,*p);
}void main(){char *str=NULL;test(&str,64);                 //&str是实参的地址,所以实参和形参之间就可以直接调用printf("str = %p, &str = %p\n",str,&str);strcpy(str,"hello");printf("str = %s\n",str);free(str);int a =100;int *p1 = &a;int **p2 = &p1;printf("&p2 = %p, p2 = %d, p1 = %p, &a = %p\n",&p2,p2,p1,&a);printf("**p2 = %d, *p1 = %d\n",**p2,*p1);}

指针变量本质(四十三)相关推荐

  1. 指针数组和数组指针的本质(四十一)

    一.指针的定义 1. int *p理解 分析: *p: 首先p与*结合,*p为一个指针,在与int结合,指向int类型,整体是指向一个int类型的指针. 2.char *p理解 分析:首先p与*结合, ...

  2. 【正点原子MP157连载】第四十三章 外置RTC芯片PCF8563实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

    1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...

  3. 【正点原子Linux连载】第四十三章 Linux设备树 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  4. 指针的本质2-void和void*及其应用在nginx中的应用

    指针本质论 指针有两个属性:指向变量/对象的地址和长度. 但是指针只存储地址,长度则取决于指针的类型, 编译器根据指针的类型从指针指向的地址向后寻址, 指针类型不同则寻址范围也不同,比如: int*从 ...

  5. OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co

    OpenCV学习笔记(四十一)--再看基础数据结构core 记得我在OpenCV学习笔记(四)--新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马 ...

  6. 2020-11-30(为什么字符串可以赋值给字符指针变量)

    今天带着疑问去看了看字符指针,就一直在想为什么输出一个指向字符的指针,它输出的不是地址,而是字符,结果挖到了一个宝藏博客,然后结合了自身的想法,摘抄了大部分内容,最后我也把我自己的疑问给解决了,外加再 ...

  7. c语言-指针的本质和使用

    指针的本质和使用 一.地址概念 我们首先来看看地址 是个什么概念 每一个变量都有一个内存位置,每一个内存位置都定义了可使用 & 运算符访问的地址,它表示了在内存中的一个地址. 画图简单说明: ...

  8. c语言指针变量的定义数组的长度,【C语言更新】指向数组的指针

    文/Edward 前面我们在讲述数组的时候曾经说过,对于数组内部元素的引用方式主要有两种,一种就是使用方括号"[]"的下标索引,另一种就是之前提到过,但是没有细致讲述的指针引用. ...

  9. 【Visual C++】游戏开发笔记四十三 浅墨DirectX教程十一 为三维世界添彩:纹理映射技术(二)...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 作者:毛星云(浅墨)    邮箱: happylifemxy@163.com 本篇文章里,我们首先对Direct3D之中固定功能流水线中的 ...

最新文章

  1. Centos7上安装Nginx两种方法
  2. Advanced Sci | 打破生成式深度学习限制:低量数据下的“one-shot”药设计法
  3. SAP S/4 HANA新变化-FI数据模型
  4. Jupyter安装r内核
  5. 【Java 并发编程】线程锁机制 ( 线程安全 | 锁机制 | 类锁 | 对象锁 | 轻量级锁 | 重量级锁 )
  6. android配置activity
  7. Azure pipeline 配置根据条件执行脚本
  8. 3.1_ _2_ 内存管理的概念
  9. apache服务器详细配置
  10. leetcode —— 33. 搜索旋转排序数组
  11. 鸿蒙系统手机现在有什么,华为鸿蒙手机迟迟未来 手机操作系统面临的难点有哪些...
  12. NFC技术:Android中的NFC技术
  13. 有关windows在调试ODOO8.0有些问题
  14. 影牛社区短视频影视APP源码
  15. java读取配置文件中文乱码
  16. 小米AI音响的拆解及简要系统分析
  17. 互联网思维之社会化思维
  18. 【juns项目】信用卡数据项目2-2:数据设计
  19. 尝试重新启动计算机和应用程序 错误38,win10系统运行coreldraw x7 38错误怎么办?win10 cdr 错误38解决方法...
  20. python包NetworkX学习——最短路径dijkstra_path和dijkstra_path_length

热门文章

  1. 21-python-time,random模块的应用
  2. php编程之如何调用支付宝支付接口的实现
  3. 唐雄燕点评NFV产业进程:2016年将迎来试点年
  4. SNMP学习(2)——SNMP实战
  5. 高接低挡,Isilon三款新品铺开战线
  6. 论大学毕业后是否适合创业
  7. 盘古分词工具学习笔记
  8. 混合汇编 src-control
  9. 好友伤害_家暴,对一个孩子的伤害到底有多大?
  10. 服务器cpu对游戏的支持,多核服务器性能实测篇―浪潮:服务器cpu玩游戏怎么样...