C 指针语法

2023-12-01

这两行代码有什么区别呢?

int *ptr = &x;

and

void* q = &x;
int* p = q;

我对 C 和指针的概念非常陌生 - 主要是在 Java 中教授的 - 所以有点困惑。

提前致谢。


void *用于表示 C 中的通用指针。
这意味着它可以指向任何类型。

所以在第一种情况下int *ptr = &x;你使用一个指向int所以任何使用它的人都知道它正在操作一个整数。

在第二种情况下void* q = &x;您通过通用指针指向整数地址。
问题是不清楚这个指针指的是什么类型。

因此,第一个和第二个示例具有相同的效果(在您的具体示例中),但是void *这样使用并不安全。

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

C 指针语法 的相关文章

随机推荐

  • Material-UI Button 组件如何推断传递给“component” prop 的组件的 props?

    谁能解释一下 Material UI 如何扩展其 propsButton如果我在component prop interface MyLinkProps extends ButtonBaseProps someRandomProp stri
  • 使用字典将 xml 反序列化为对象

    这是我的班级结构 class DataItem public string Id get set public string Type get set private Dictionary
  • 前瞻和非捕获正则表达式

    我试图将 字符之前的电子邮件地址的本地部分与 LOCAL RE NOTQUOTED w alphanumeric and special chars but no dot at beginning w alphanumeric and sp
  • 传递类型参数进行实例化

    为什么 scala 编译器不挖掘这个 class Clazz class Foo C lt Clazz val foo new C class type required but C found error val a new C erro
  • 无法获取 PropertyInfo.SetValue() 来设置我的对象的值

    我已将下面的代码简化为一个基本示例 但我仍然无法获取要设置的值 执行 propertyInfo SetValue 时 它将在我的 Contact 对象的 setter 上命中断点 并且该值在 setter 中正确设置 但是 执行 SetVa
  • Java进程间互斥体

    我需要在 Java 中实现某种进程间互斥锁 我正在考虑使用本文中推荐的 FileLock APIthread 我基本上将使用一个虚拟文件并将其锁定在每个进程中 这是最好的方法吗 或者是标准 API 中内置的类似内容 我找不到 欲了解更多详情
  • 如何在 Android Studio 中对齐 XML 代码?

    Android Studio 中是否有任何功能可以通过 符号对齐所有 XML 属性 我找不到任何允许这样做的设置 Just another code format fanatic who likes code readability 下面的
  • 添加数据以返回 Symfony 控制器中的所有操作

    我在 Symfony 2 1 应用程序中有一个控制器 我们就这样称呼它吧FooController in the BarBundle 这个控制器有很多动作fooAction barAction bazAction还有一些 他们都有一些共同点
  • 使用终端而不是 Xcode 运行 C 脚本

    目前我正在我的 Mac 上使用 Xcode 开发几个 C 程序 然而有1个问题 我的学习要求我通过编码使用某种输入字段 例如 如果用户想要运行该程序 10 次或希望该程序创建 10 个答案 我使用 atoi argv 1 只是为了获取用户的
  • SQL DELETE 并 JOIN 另一个表作为 WHERE 条件

    我必须从中删除行guide category与 没有关系的guide表 死关系 这就是我想做的 但它当然行不通 DELETE FROM guide category AS pgc WHERE pgc id guide category IN
  • 使用 JQueryUI 一次打开多个工具提示

    我需要做类似的事情 document tooltip open 我需要这样做 因为我想在鼠标悬停时显示工具提示 但也想用一个复选框显示所有这些工具提示 这可能吗 你可以在 jsFiddle 中查看我想要的内容 http jsfiddle n
  • BMP 图像标题 - biXPelsPerMeter

    我已经阅读了很多有关 BMP 文件格式结构的内容 但我仍然无法理解字段 biXPelsPermeter 和 biYPelsPermeter 的真正含义是什么 我的意思是在实际中 它是如何使用的或者如何利用它 有什么例子或经验吗 多谢 双像素
  • 有谁能够让肥皂库与 NetSuite WSDL 一起使用吗?

    有谁能够让肥皂库与 NetSuite WSDL 一起使用吗 当我尝试创建客户端时出现此错误 from suds client import Client url http mssoapinterop org asmx simple asmx
  • 在 Node 服务器上运行 Matter.js

    我正在尝试运行一个在服务器上运行物理模拟的服务器 并让客户端通过 websockets socket io 连接到该服务器 我知道我可以使用 Matter js 与渲染分开计算引擎 所以我的问题是 如何将引擎数据发送给客户端 我有一个Gam
  • 如何根据用户的不同让我的机器人在不同的对话框中启动

    基本上 我希望使用 iframe 和 Bot Framework Web Chat 将我的机器人放在不同的页面上 根据用户打开机器人的页面 会调用不同的对话框 如果没有 Direct Line 这就像向 api messages 添加查询参
  • Android AudioRecord 初始化失败

    我在使用 Android 版 AudioRecord 时遇到问题 我已经在网上阅读了尽可能多的内容 但我似乎无法获得良好的初始化 我尝试过 Android 2 2 模拟器 1 5 模拟器和我的手机 运行 Froyo 的 HTC Incred
  • 如何在 C# 中以编程方式启用强大的私钥保护?

    使用 C 以编程方式添加 X509Certificate2 时 如何实现相当于在 certmgr msc 中设置 强私钥保护 复选框的效果 您必须设置X509KeyStorageFlags相应地 当导入证书 i e MachineKeySe
  • 限制某些 iOS 目标设备进行 App Store 提交

    由于在 iPhone 4 硬件上运行出现问题 我的 iTunes App Store 提交被退回 基本上 该应用程序的编写目的是将所有网络活动转移到后台线程 以便 UI 在等待服务器响应慢速 蜂窝 数据连接时不会锁定 这在 iPad 2 i
  • 我应该始终使用视图模型还是可以使用 ViewData?

    您认为什么时候使用 ViewData 比视图模型更好 我在几个主要视图中有完全相同的部分视图 我想控制部分视图的呈现方式 但我也更喜欢部分视图只接受视图模型 该视图模型是记录的集合 只是一个纯粹的IEnumerable lt gt 目的 我
  • C 指针语法

    这两行代码有什么区别呢 int ptr x and void q x int p q 我对 C 和指针的概念非常陌生 主要是在 Java 中教授的 所以有点困惑 提前致谢 void 用于表示 C 中的通用指针 这意味着它可以指向任何类型 所