gpt4 book ai didi

c - 在 C 中使用 char 指针传递 int

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

我正在尝试弄清楚如何使用 char 指针传递 int。一旦 int 值对于 char 来说太大,它就会失败。这就是我想弄清楚的:

char *args[5];

int i = 20;

/*some other code/assignments*/

args[2] = (char *)&i;

execv(path, args);

如果我是一个更大的值,比如 400,我将如何做这样的事情?

提前致谢。

最佳答案

程序根本不将整数作为参数,它们将字符串作为参数。这些字符串可以是整数的十进制表示,但它们仍然是字符串。所以你问的是如何做一些根本没有任何意义的事情。

二十是一个整数。这是你拥有的东西的数量,如果你有十八个,然后有人再给你两个。二十不能是可执行文件的参数。

“20”是一个字符串。它可以表示十进制的数字二十。但它是两个字符的序列,十进制数字“2”后跟十进制数字“0”。

您将字符串传递给可执行文件,而不是整数。

当您输入类似 tail -f 20 的命令时,数字二十不是参数之一。它们是字符串“tail”、字符串“-f”和字符串“20”(数字“2”后跟数字“0”)。那里没有数字,只有字符串(尽管其中一个恰好代表一个数字)。

你可以这样做:

int i = 10;
char parameter[32];
sprintf(parameter, "%d", i);
// parameter now contains the string "10"
args[2] = parameter;

关于c - 在 C 中使用 char 指针传递 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30991889/

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