C语言中指针可以指向自身内存地址吗?

2024-01-30

在下面的代码中,一个指针指向它自己的内存地址。

#include <stdio.h>

int main() 
{
    void * ptr;
    ptr = &ptr;

    return 0;
}

如果指针能够指向它自己的内存地址,这有意义吗?


不,这没有意义。 如果你能找到变量 ptr,你可以直接执行 &ptr。 它会给你与 ptr 内容相同的结果。

而且,由于 ptr 只讲述了有关其自身的信息,因此无论如何它都是无用的。它不提供任何对程序的其余部分有意义的信息。

想一想,有一个例外。您可以使用 ptr == &ptr 作为一种特殊值,例如 NULL。所以,在这种情况下,我认为它很有用。

有趣的是,在这种情况下,值 &ptr 作为一个特殊值是有意义的,而作为某个东西的地址则没有意义,就像 NULL 一样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言中指针可以指向自身内存地址吗? 的相关文章

  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • 如何使带有转换构造函数的wrapper类在重载解析中胜过wrapper

    我正在尝试设计一个包装器来使用一些特殊逻辑来处理算术参数 https godbolt org z zG959e5Pz https godbolt org z zG959e5Pz include
  • 在哪里部署我的 web 服务的 jar 依赖项?

    我的 Web 服务依赖于一个 jar 其中包含自定义 Exception 类等 当我在没有这个 jar 的情况下简单部署 web 服务时 axis2 抱怨 Exception 类未知 所以我想我也必须部署我的罐子 但我不愿意把它放进去 to
  • 如何在Python中创建一个循环来创建多个空列表?

    我想要一行代码来创建一个空列表 其名称由递增变量确定 到目前为止我看过的所有地方都没有帮助 他们建议改为创建空列表列表或使用字典 这不是我想要的 我想要一行 或几行 代码 它只是创建一个空列表 它不是字典或列表列表的一部分 一个独立的实体
  • 检测视口方向,如果方向为纵向,则显示警报消息,向用户提供说明建议

    我正在建立一个专门针对移动设备的网站 特别是有一个页面最好以横向模式查看 有没有办法检测访问该页面的用户是否以纵向模式查看它 如果是 则显示一条消息 通知用户该页面最好以横向模式查看 如果用户已经在横向模式下查看它 则不会出现任何消 息 所
  • 在 Python 2.7 中包装大列表以使其不可变

    如果我有一个很大的list gt 100k 元素 可以通过函数调用从某个对象中检索 是否有一种方法可以包装该列表以使其对调用者不可变 而无需将其复制到tuple 在下面的例子中我只有一个list领域 但解决方案应该适用于任意数量list f
  • 将 iPhone 应用程序安装到 iPhone

    我按照该网站的教程进行操作 http theappleblog com 2008 08 04 tutorial build a simple rss reader for iphone http theappleblog com 2008
  • jquery - 使用 .done()、.then() 和 .when() 按给定顺序发出 ajax 请求

    我一直在阅读有关 jquery 中 Promise 的大量内容 并在发出多个 ajax 请求时避免 回调地狱 我觉得即使读完所有这些 对于使用什么也没有给出简单的答案 就 done then and when 在链接请求方面 我试图构建最基
  • 使用 pandas 绘制箱线图

    尝试为 pandas 数据框绘制箱线图 但 x 轴列名称似乎不明确 import matplotlib pyplot as plt pd set option display mpl style default fig ax1 plt su
  • Python:如何将进程轮询和非阻塞 WebSocket 服务器结合起来?

    我有个主意 编写一个基于 WebSocket 的 RPC 该 RPC 将根据以下场景处理消息 客户端连接到 WS Web 套接字 服务器 客户端向WS服务器发送消息 WS服务器将消息放入传入队列 可以是multiprocessing Que
  • 按 RDD 值从 Cassandra 表中过滤

    我想根据 RDD 中的值从 Cassandra 查询一些数据 我的方法如下 val userIds sc textFile tmp user ids keyBy e gt e val t sc cassandraTable keyspace
  • 如何在 npm 包中捆绑依赖项?

    我有一个 npm 包 它引用了其他本地包 它有这样的结构 deploy typescriptapp tgz references mydependency 包 json app js app css typescriptapp 包 json
  • 中间人:从 Markdown 引用存储在数据文件中的 URL

    For my 中间人构建的网站我已将所有页面的链接和其他信息存储在数据文件中 https middlemanapp com advanced data files data pages yaml pageA link some long u
  • 关于 Nix 包管理的 Nix 表达式是什么?

    即使在阅读了 Nix 手册之后 仍然对 Nix 表达式的真正含义感到困惑 有时它们被称为派生 但存储派生也有其他含义 在尼克斯 一个尼克斯表达只是您可以用 Nix 语言编写的任何类型值的通用术语 Nix 表达式可以是集合 列表 数字 字符串
  • 如何将 Google Plus 与 iPhone sdk 集成?

    我想将 google plus 集成到我的应用程序中 但我不知道从哪里开始 所以如果有人对此有任何想法 请回复我 以此为基础 gt https developers google com api https developers googl
  • 如何从 ORMLite 的 sqlite 数据库生成 java 类代码

    给定一个 sqlite 数据库作为输入 我想知道如何生成一个ORMLite http ormlite com 与关联数据库映射的java类 非常感谢 你可以尝试Telosys 工具 一个用于代码生成的 Eclipse 插件从现有数据库工作具
  • 文件上传大文件 PHP/AJAX [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Github API - 检索用户提交?

    我正在尝试构建一种方法 在该方法中我可以访问 Github 用户名 并发布该用户的所有提交或至少一些提交 是否有调用 GET user repo commit 关联或直接用户 提交 现在 我认为需要采取以下措施 获取与特定名称关联的存储库
  • Option 类型的类型转换

    我是 Python 的 Rust 新手 我相信这是一个基本问题 但我太新了 无法通过诸如类型转换选项 在Python中 让类型检查器知道返回类型不是Optional int int 我们可以解决assert强制类型检查器知道的逻辑x永远不会
  • 在python中分配列表中的每个第N个元素

    我想将列表中的每个第 N 个元素设置为其他值 Like 这个问题 https stackoverflow com questions 14994140 how do you make every other integer in an ar
  • C语言中指针可以指向自身内存地址吗?

    在下面的代码中 一个指针指向它自己的内存地址 include