C 中这个表达式 (char *) 是什么意思?

2023-12-09

对 C 非常陌生,我想我只是勉强掌握了指针的概念,但语法有点令人困惑,所以我很难理解这个表达式的含义x = (char *) &a; means.

其余功能供参考:

#include<stdio.h> 
int main() 
{ 
   int a; 
   char *x; 
   x = (char *) &a; 
   a = 512; 
   x[0] = 1; 
   x[1] = 2; 
   printf("%d\n",a);   
   return 0; 
}

更具体地说,为什么需要写x = (char *) &a;而不仅仅是x = &a;?添加的有什么作用(char *)改变表达方式怎么办?


It's a cast。它告诉编译器它应该解释&a as a char*代替int*这是它的实际类型。

不进行此转换会导致编译错误,因为类型不匹配,您基本上是在告诉编译器“我知道我在做什么,并且我确信这是一个char*“从而让你接近类型X就好像它是类型一样Y.

通常,转换类型的指针X to Y并尝试通过类型取消引用它Y将违反严格的别名规则但在这种情况下,因为我们通过别名char*这是允许的。

在这种情况下,它允许您访问的各个字节int (by x[]),请注意,结果会根据机器的字节顺序(大或小)而有所不同。

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

C 中这个表达式 (char *) 是什么意思? 的相关文章

  • 如何使用 C# 中的参数将用户重定向到 paypal

    如果我有像下面这样的简单表格 我可以用它来将用户重定向到 PayPal 以完成付款
  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre
  • 没有强命名的代码签名是否会让您的应用程序容易被滥用?

    尝试了解authenticode代码签名和强命名 我是否正确地认为 如果我对引用一些 dll 非强命名 的 exe 进行代码签名 恶意用户就可以替换我的 DLL 并以看似由我签名但正在运行的方式分发应用程序他们的代码 假设这是真的 那么您似
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • java 哪个布局管理器适合这个任务?

    我有一个 JPanel 父级 里面有 3 个 JPanel 子级 它们目前都使用 GridLayout 并共同表示一个 UML 类 问题是 当我添加新属性或方法时 所有 3 个 JPanel 都会增长到相同的大小 欲望行为是 无论何时添加方
  • 固定与绝对

    因此 我检查了该网站 发现一些问题与我正在寻找的内容很接近 但并不完全相同 我试图弄清楚如何定位元素 以便在滚动 向上 向下 时位置是固定的 但是当浏览器调整大小 向左 向右 时 位置是绝对或相对的 本质上 我想将一个元素放置在距浏览器窗口
  • C#,如何让图片背景透明?

    我有一个图片框 里面有一个png 然而 即使我将背景色设置为透明 它也不是透明的 有什么想法可能是错的吗 Thanks 我也遇到过有关透明图片的问题 你必须通过代码来绘制它 看我的问题图片框问题 EDIT In 绘画事件 包含背景图像的控件
  • 使用迭代器删除对象时出现 IllegalStateException

    我已经被这个错误困扰了一段时间 但我不知道问题出在哪里 我的代码是这样的 ArrayList
  • 使用 Gensim 提取短语时出错

    我正在尝试使用 Gensim 中的短语来获取句子中的二元组 如下所示 from gensim models import Phrases from gensim models phrases import Phraser documents
  • 用 javascript 获取真正的源代码?

    好吧 我对 js 的了解还不够 但是有没有办法用它来获取页面的真正源代码 例如 document body innerHTML 提供了某种 修复 版本 其中格式错误的标签已被删除 我猜想在原始页面上使用 XMLHttpRequest 可能会
  • 按钮背景颜色

    我需要改变background使用 C 代码 Visual Studio 2008 的按钮颜色 我看到有些人建议加入指令 using System Windows Media 我尝试了一下 它触发了此错误 Windows 不存在于names
  • 提取并列出匹配的单元格

    我试图比较包含公司名称的两列 A 和 B 找到任何完全匹配的名称 并将它们列在 C 列中 使用下面的代码 我没有收到错误 但什么也没有发生 如果有人能指出我正确的方向 我将不胜感激 Sub match Dim LastRow As Inte
  • Python——使用 beautifulsoup 抓取“展开”按钮中的内容

    我正在抓取一个黄页来获取一个城市所有物理治疗师的名字 通过该 url 我可以获得 50 名物理治疗师的列表 但是 当我展开页面时 该 url 不会改变 我如何获得完整的名单 这就是我获取罗斯托克市物理治疗师名单的方式 url https w
  • Io 异常:Oracle 云中的 Oracle 错误 ORA-12650

    我一直在为我的数据库计算机 Oracle 11g 使用 Oracle 云 PAAS Linux 服务器 并拥有可以运行所有 Java 应用程序的 Linux 应用程序服务器 假设我有基于 Spring 的 Web 应用程序 可以连接云数据库
  • 如何以编程方式模拟 Flutter 中按钮上的 onTap?

    例如 Update This GestureDetector is embedded inside a third party package that will invoke a series of animation along wit
  • 为什么这段 javascript 代码片段的日志记录为 1? [复制]

    这个问题在这里已经有答案了 在一次采访中 我被要求猜测以下代码片段的输出 var foo 1 function bar foo 10 return function foo bar console log foo 我认为输出将是 10 因为
  • 如何在 iOS 上的 Swift 中使用 Big5 编码

    我正在扫描带有 Big5 编码的汉字的二维码 主页概况 在 Swift 3 中是否有机会正确解码该字符串 我找到了这个Objective C 示例在 GitHub 和这个上那么问题 但是没有kCFStringEncodingBig5 HKS
  • 如何在 Dart 中从 Cloud Firestore 获取随机文档(适用于 Flutter)? [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 Lets say I have the following documents inside a Firestore collection How can I randomly get
  • Angular 4 的核心模块中的服务真的是单例提供的吗?

    我试图理解 Angular 4 中的核心模块和单例服务 官方文档 https angular io guide ngmodule 说了以下几件事 UserService 是一个应用程序范围的单例 你不想要每一个 模块有自己单独的实例 但确实
  • 破译 C/C++ 函数指针 typedef 的工具

    我记得曾经看到过一个网站 它破译了复杂的 C typedef 包括函数指针 该函数指针返回指向函数的函数指针 该函数返回一个数组 它将这些定义转换为可读的英文文本 指向函数的指针 返回 int 指针数组 采用 long 和回调函数 采用 i
  • Spark 和 Yarn 的资源分配

    我在纱线客户端模式下使用 Zeppelin 0 7 3 和 Spark 2 3 我的设置是 Spark spark driver memory 4096m spark driver memoryOverhead 3072m spark ex
  • Keras ValueError:ValueError:检查目标时出错:预期dense_4具有形状(无,2)但得到形状为(2592,1)的数组Python3

    我在尝试在 Keras 2 0 8 Python 3 6 1 和 Tensorflow 后端中训练模型时遇到问题 错误信息 ValueError 检查目标时出错 预期dense 4具有形状 无 2 但得到形状为 2592 1 的数组 X t
  • 在 Spring 3.2 中禁用路径变量中的空格修剪

    默认情况下 Spring 会修剪用作路径变量的字符串中的前导 尾随空格 我发现这是因为修剪标记标志设置为true默认情况下蚂蚁路径匹配器 但我不知道如何将该标志设置为false 提供我自己的请求映射处理程序映射豆使用蚂蚁路径匹配器我将其设置
  • C 中这个表达式 (char *) 是什么意思?

    对 C 非常陌生 我想我只是勉强掌握了指针的概念 但语法有点令人困惑 所以我很难理解这个表达式的含义x char a means 其余功能供参考 include