gpt4 book ai didi

c - C中的参数传递

转载 作者:行者123 更新时间:2023-11-30 21:47:41 25 4
gpt4 key购买 nike

int main(int argc, char *argv[])
{
int param = *argv[1];
printf("Parameter = %d\n",param);
}

我运行它 ./myProgram 5,我期望输出为 5。由于某种原因我得到的是 53。

最佳答案

从声明中可以看出,argv 是一个 char 指针数组。这意味着您的 main 函数不会传递数值 5,而是传递(可能是 ASCII 或 UTF8)编码的字符串值“5”。如果你看ASCII table ,您将看到字符“5”在 ASCII 中被编码为数值 53。您还可以看到字母“a”被编码为数字 97,因此运行 ./myProgram a 应输出 Parameter = 97

要获取 ASCII 编码字符串的数值,您可以使用 atoi(),例如写

int main(int argc, char *argv[]) {
int param = atoi(argv[1]);
printf("Parameter = %d\n",param);
}

关于c - C中的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23370354/

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