gpt4 book ai didi

c - C中的整数指针?

转载 作者:行者123 更新时间:2023-12-02 22:43:42 25 4
gpt4 key购买 nike

我正在使用 C 语言在 Linux 中进行一些串行通信。我正在使用文件描述符来执行此操作。由于某些原因,在char* s = "Hello world"之后,我可以使用write方法将s写入串口,没问题。我正在使用串行监视器程序来检查另一端。但是,我无法发送任何其他类型的数据。我从写入函数中收到“错误地址”错误。

但是,我注意到如果我做了一些非常奇怪的事情:int* x = "5"; 然后我可以发送这个 x。我的问题是,int* x = "5" 到底是什么意思?

最佳答案

int* x = "5"; 

这不是有效的 C 代码。您必须将数组的值转换为 int *,但取消引用指针仍然会破坏对齐规则并成为未定义的行为。

int *x =  (int *) "5";

最后一段代码存储了一个char [2] 类型的未命名数组对象。 "5" 的值是指向其第一个元素的指针,该指针是一个char *。转换将 char * 转换为 int * 并将其存储在 x 中。

关于c - C中的整数指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10366880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com