C语言-指针辨析(一)

2023-10-27

C语言-指针辨析(一)

int num = 9;
int* p = #

printf("p = 0x%x\n",p);
printf("*p = 0x%x\n",*p);
printf("*&p = 0x%x\n",*&p);
printf("&*p = 0x%x\n",&*p);
p = 0x62fe1c
*p = 0x9
*&p = 0x62fe1c
&*p = 0x62fe1c

--------------------------------
Process exited after 0.01207 seconds with return value 0
请按任意键继续. . .

1.p与*p

p是一个地址

*p是地址内的数值

2.*&p&*p

p是一个地址即一个指针,&p:取地址p的地址即一个指向指针的指针。假设p的地址放在地址d,即d=p。故&p=*d=p。
*p是地址p存放的数,取这个数的地址自然是p,即&*p=&(*p)=p。

3.指针初始化

指针的功能就是指向某个数据,声明了指针而不定义,是会出问题的。计算机的逻辑是确定的,给它一个不确定的指针,它就会给你搞出些玄学的结果出来。

  • 指向空指针
int* p = NULL;
/*Null是常量0,
这里也就是把指针指向了地址0x00,
但这个地址是一般无法访问的。
我认为这里应该是和编译器约定以NULL作为一个标记。
*/
  • 指向变量
int value = 100;
int* p =&value;//正确写法
int* p=value;//错误写法,p=value=100,谁知道地址100里放的是什么
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言-指针辨析(一) 的相关文章

  • ansible批量添加用户账户密码

    一 批量添加root用户以及密码 首先批量添加root 账号密码 不用ssh copy id root ip地址 因为如果ip比较多的情况下 ssh脚本添加会特别的麻烦 步骤1 首先要配置ansible清单 远程主机的密码这里为 12345
  • Idea上传已有项目到git

    开发经常遇到的问题是开发初期没有建立GIT仓库 开发一段时间后 需要将已有代码上传到Git 怎么将已有项目与新建的Git仓库相关联呢 借助Idea可以轻松实现 1 首先使用Git命令行 git clone XXXXX git 将项目下载 2
  • JAVA控制台输出格式

    public class PrintFormat public static void main String args Console print format System out printf format args format为指
  • Python键鼠操作自动化库PyAutoGUI简介

    PyAutoGUI是一个Python语言的键鼠自动化库 简单来说和按键精灵的功能一样 但是因为是Python的类库 所以可以使用Python代码配合一些其他类库完成更加强大的功能 下面让我为大家介绍一下吧 安装 从pip安装即可 pip i
  • 【threejs 】添加标签和射线

    three 添加标签 应用 上一篇文章我们说了世界坐标和屏幕坐标的准换那么有什么应用呢 应用 可以实现该效果 鼠标移动该模块的时候展示该模块的标签 或者可以常显 射线就是当鼠标移动到该模块该模块变化颜色 创建一个标签js文件作为封装的方法
  • 深入理解文字高度和行高的设置

    font size设置的是什么 line height设置的是什么 各种行高是怎么计算出来的 你真的知道吗 1 从font size讲起 说文字高度 当你按住鼠标左键选中一段文字的时候 这段文字背后会有一个颜色变化的区域 这个区域可以近似的

随机推荐

  • 零基础开发WIFI设备(esp8266)

    目录 前言 一 本例程实现功能 二 Core提供的TCP功能介绍 三 接线图 四 材料清单 五 完整代码 通过IP地址和服务器建立连接 代码运行结果 前言 shineblink core 开发板 简称Core 的库函数支持WIFI功能 所以
  • 将websocket通信端口代理到TCP通信端口的方法记录

    websocketproxy代理服务基于go语言实现 功能描述 Proxy of gateway Websockt transfer TCP protocol Websocket gt TCP TCP gt Websocket 即 实现将w
  • 禅道项目管理系统RCE漏洞复现+利用

    1 漏洞概述 禅道研发项目管理软件是国产的开源项目管理软件 专注研发项目管理 内置需求管理 任务管理 bug管理 缺陷管理 用例管理 计划发布等功能 实现了软件的完整生命周期管理 2023年1月6日 互联网披露其旧版本中存在权限绕过与命令执
  • 编写一个方法,将字符串中的空格全部替换为“%20”

    请编写一个方法 将字符串中的空格全部替换为 20 假定该字符串有足够的空间存放新增的字符 并且知道字符串的真实长度 小于等于1000 同时保证字符串由大小写的英文字母组成 给定一个string iniString 为原始的串 以及串的长度
  • 杂凑密码——摘要算法简介

    概念 密码杂凑函数 Cryptographic hash function 又称为密码散列函数 加密散列函数 散列函数的一种 杂凑函数是一种单向函数 要由散列函数输出的结果 回推输入的资料是什么 是非常困难的 散列函数的输出结果 被称为讯息
  • Kotlin inline 关键字

    文章目录 前言 一 inline 是什么 二 未使用 2 使用后 总结 前言 最近又到了面试的季节 今天在面试中被问到了kotlin inline 关键字 感觉回答的不是很好 今天研究一下它 一 inline 是什么 inline 是kot
  • k8s源码解析 - 如何使用yaml创建k8s的资源

    如何初始化k8s中的client 1 kubernetes Clientset 参考链接 集群内访问创建k8s client 直接获取集群内的config 通过config创建clientSet creates the in cluster
  • postconstruct不执行_Spring Boot 应用在启动阶段执行代码的几种方式

    前言 有时候我们需要在应用启动时执行一些代码片段 这些片段可能是仅仅是为了记录 log 也可能是在https dayarch top p pkix certificate import html 诸如上述业务要求我们可能会经常碰到 Spri
  • C# Linq源码分析之Take(五)

    概要 本文在C Linq源码分析之Take 四 的基础上继续从源码角度分析Take的优化方法 主要分析Where Select Take的使用案例 Where Select Take的案例分析 该场景模拟我们显示中将EF中与数据库关联的对象
  • UTF8 到GB2312 的 转换

    这段代码不仅仅是含有UTF8到Unicode的转换 还包括Gb2312 Unicode 到Gb2312 如过不使用Windows API的话 那么自己因该建立一个转化表 这样效率才会好 因为我一时没有找到这种表 如果谁有请贴上来 谢谢 in
  • 快手__nsTokensig和sig签名算法分析

    一 nstokensig签名 最近在学习android逆向 不足之处欢迎大佬多多指点 这次分析的是快手极速版1 2 2 8 使用Fiddler抓包发现有2个签名 一个是 nstokensig和sig 通过jadx gui搜索字符串找到nst
  • MATLAB数值计算——矩阵运算乘法、除法、乘方

    一 矩阵 矩阵是线性代数的基本单元 矩阵含有M行N列数值 矩阵中的元素可以是实数或复数 矩阵相关的基本运算 加 减 内积 逆矩阵 转置 线性方程式 特征值 特征向量 矩阵分解 二 矩阵的运算 2 1 矩阵的乘法运算 运算符 矩阵乘法 矩阵对
  • catalog java,Java Connection getCatalog()方法与示例

    通常 目录是一个目录 其中包含有关数据集 文件或数据库的信息 而数据库目录中包含所有数据库 基本表 视图 虚拟表 同义词 值范围 索引 用户和用户组的列表 Connection接口的getCatalog 方法返回当前连接对象的当前目录 数据
  • 计量经济学学习与Stata应用笔记(五)极大似然估计MLE

    极大似然估计的思想 就是在给定样本值的情况下 构建未知参数的函数 寻找能够使得观测到样本数据的可能性最大的估计参数 定义似然函数为 L y 1
  • TVM中python访问c++函数机制

    data TVM tvm python tvm ffi registry py data TVM tvm python tvm ffi registry py data TVM tvm python tvm ffi ctypes packe
  • Win11系统恢复经典的右键菜单方法(CMD快速执行)

    cmd执行 Win11切换经典右键菜单 reg add HKCU Software Classes CLSID 86ca1aa0 34aa 4e8b a509 50c905bae2a2 InprocServer32 f ve taskkil
  • 彻底卸载VS2013/VS2015及以上版本

    1 彻底卸载Visual Studio 2015 教你如何彻底Visual Studio 2013 Visual Studio 2015及以上版本 解决很多人卸载不干净的问题 2 工具 原料 外国一款叫Visual Studio Unins
  • kafka producer java API的实现

    1 开发环境的构建 使用IDEA MAVEN构建开发环境 可以采用Maven中scala archetype simple模板 2 pom xml的配置 这里scala版本为2 11 8 kafka版本为0 9 0 0
  • 全志A64触摸屏驱动调试

    一 前言 linux的触摸屏驱动一般要经历一下几个步骤 以4412为例 1 移植驱动到linux源码 driver input touchscreen 目录下 在Kconfig里面增加这款触摸屏驱动的菜单 add by long 20170
  • C语言-指针辨析(一)

    C语言 指针辨析 一 int num 9 int p num printf p 0x x n p printf p 0x x n p printf p 0x x n p printf p 0x x n p p 0x62fe1c p 0x9