gpt4 book ai didi

c - 数组访问,指针混淆

转载 作者:太空宇宙 更新时间:2023-11-04 05:14:01 24 4
gpt4 key购买 nike

我有一些继承的代码和一个将字符数组作为参数的函数。

typedef char myString[256];

void MyFunc(myString param)
{
int i;

for (i = 0; i < 256; i++)
{
if (param[i] ....

我想让它更有效率并传递一个指向 char 数组的指针:

void MyFunc(myString *param)
{
int i;

for (i = 0; i < 256; i++)
{
if (*param[i] <========= Thsi is wrong

当我尝试引用数组元素时,我得到了错误的值,所以显然我的指针取消引用有问题。我已经有一段时间没有用 C 编写代码了,所以我看不出明显的错误。

有人可以指出吗?

最佳答案

您可能不想通过指针传递它;当您在参数中使用该类型时,它无论如何都会变成一个指针,并且二级间接寻址的效率较低。

如果您确实使用“指向数组的指针”表示法,那么您需要括号来获得正确的优先级:

if ((*param)[i] ...)
...

关于c - 数组访问,指针混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14250475/

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