gpt4 book ai didi

c - 将 int 相除并存储回原始变量

转载 作者:行者123 更新时间:2023-11-30 20:20:14 26 4
gpt4 key购买 nike

我有一个函数可以执行一些操作(该部分是不相关的),然后它设置一个名为 num 的值,然后打印该值。我的问题是,在打印函数的最后一步之前,它必须除以 4。这就是我遇到的障碍......见下文:

int *num = 0;

.
. //num is determined here...
.

num = num/4; // <-- My issue
printf("%d\n", num);

我得到的错误是:

error: invalid operands to binary / (have 'int *' and 'int')

从这样的搜索意味着我需要像这样尊重它:

num = (*num)/4;

尽管这也无法正常工作(它不会给出任何错误,但它实际上将我的代码置于无限循环中并且 Windows 停止了它)。我想要做的是将存储在 num (地址)的值除以 for,然后将 num 值设置为该新值。但我发现很难正确地完成这项工作。

最佳答案

num 是指针类型。所以 num = num/4 ;这是一件不太可能发生的事情。这甚至是不允许的。

根据标准6.5.5每个操作数都应具有算术类型。(乘法表达式)

编译器还会告诉您错误:二进制/的无效操作数(有'int *'和'int')

/ 有两个参数。但编译器正在查看操作数,发现它们是 * 类型。所以它提示因为它不被允许作为oer标准。

num =*num/4; 基本上是将整数结果分配给指针变量。尽管这可能不会导致期望的行为,但允许。 (我们也做int *p =NULL)

关于c - 将 int 相除并存储回原始变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47047075/

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