在C中使用字符指针传递int
我想知道如何使用char指针传递int。一旦int值对于char太大,它就会失败。这就是我想弄明白的:在C中使用字符指针传递int,c,exec,ipc,C,Exec,Ipc,我想知道如何使用char指针传递int。一旦int值对于char太大,它就会失败。这就是我想弄明白的: char *args[5]; int i = 20; /*some other code/assignments*/ args[2] = (char *)&i; execv(path, args); 如果我是一个更大的值,比如400,我会怎么做 提前感谢。程序不使用整数作为参数,而是使用字符串。这些字符串可以是整数的十进制表示形式,但它们仍然是字符串。所以你在问如何做一些根本
char *args[5];
int i = 20;
/*some other code/assignments*/
args[2] = (char *)&i;
execv(path, args);
如果我是一个更大的值,比如400,我会怎么做
提前感谢。程序不使用整数作为参数,而是使用字符串。这些字符串可以是整数的十进制表示形式,但它们仍然是字符串。所以你在问如何做一些根本没有意义的事情 二十是整数。这是你拥有的东西的数量,如果你有十八件,然后有人再给你两件。二十不能是可执行文件的参数 “20”是一个字符串。它可以用十进制表示数字二十。但这是一个由两个字符组成的序列,十进制数字“2”后跟十进制数字“0” 将字符串传递给可执行文件,而不是整数 当您输入类似于
tail-f20
的命令时,数字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;
程序只是不接受整数作为参数,而是接受字符串。这些字符串可以是整数的十进制表示形式,但它们仍然是字符串。所以你在问如何做一些根本没有意义的事情 二十是整数。这是你拥有的东西的数量,如果你有十八件,然后有人再给你两件。二十不能是可执行文件的参数 “20”是一个字符串。它可以用十进制表示数字二十。但这是一个由两个字符组成的序列,十进制数字“2”后跟十进制数字“0” 将字符串传递给可执行文件,而不是整数 当您输入类似于
tail-f20
的命令时,数字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;
你想解决的实际问题是什么?为什么你要用字符指针传递一个整数?我想你可能把数字和数字的表示混淆了。你真的想通过数字20(如果你有18件东西,而别人又给了你两件,那么你拥有的东西的数量)吗?或者您正在尝试传递字符串“20”(由十进制数字“2”后跟十进制数字“0”组成的字符串)?我正在尝试将整数作为参数传递给另一个程序,但程序不将整数作为参数。它们采用字符串(可以表示数字)。好吧,我正在尝试使用execvw将矩阵的维数传递给另一个程序。您要解决的实际问题是什么?为什么你要用字符指针传递一个整数?我想你可能把数字和数字的表示混淆了。你真的想通过数字20(如果你有18件东西,而别人又给了你两件,那么你拥有的东西的数量)吗?或者您正在尝试传递字符串“20”(由十进制数字“2”后跟十进制数字“0”组成的字符串)?我正在尝试将整数作为参数传递给另一个程序,但程序不将整数作为参数。它们采用字符串(可以表示数字)。好吧,我正在尝试使用execvThanks将矩阵的维数传递给另一个程序,以获得帮助和解释。谢谢您的帮助和解释。