gpt4 book ai didi

c - 在 C 中将 char 数组作为参数传递为指针

转载 作者:太空宇宙 更新时间:2023-11-04 02:25:57 26 4
gpt4 key购买 nike

我正在尝试将 char 数组传递给 C 中的函数。

我的代码如下

void Process(const char expect[])
{
char c0 = expect[0];
char c1 = expect[1];
}

Process("OK");

我的调试器告诉我,expect 是一个指向单个字符的指针,这对我来说没有任何意义。如果我尝试从 expect 读取数据(c0 和 c1 变量在做什么),我会得到这个(或类似的东西)

c0 = "O";
c1 = NULL;

更让我感到困惑的是,我使用相同的参数语法完成了一个类似的函数,但没有任何问题。任何帮助将不胜感激 - 提前致谢。

最佳答案

数组传递很简单。数组不会被传递——它们最内层的维度衰减为指针,void Process(char expect[]) 完全等同于 void Process(char *expect)

您的(不完整的)示例中没有任何内容表明它行不通。

这个

#include <stdio.h>
void Process(char expect[])
{
char c0 = expect[0];
char c1 = expect[1];
printf("'%c' '%c'\n", c0, c1);
}
int main(void) { Process("OK"); }

必须打印 'O' 'K'。如果它不在你的程序上下文中,那么你一定是做错了什么或者你的程序中的某些东西一定是未定义的。

关于c - 在 C 中将 char 数组作为参数传递为指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51225615/

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