[英]Passing int using char pointer in C
我試圖弄清楚如何使用char指針傳遞int。 一旦int值對於char太大,它將失敗。 這就是我要弄清楚的:
char *args[5];
int i = 20;
/*some other code/assignments*/
args[2] = (char *)&i;
execv(path, args);
如果我的價值更高,例如400,我將如何做這樣的事情?
提前致謝。
程序只是不接受整數作為參數,而是接受字符串。 這些字符串可以是整數的十進制表示形式,但它們仍然是字符串。 因此,您在問如何做根本沒有任何意義的事情。
二十是整數。 如果您年滿18歲,然后有人再給您兩個,這就是您擁有的東西的數量。 二十不能是可執行文件的參數。
“ 20”是字符串。 它可以代表十進制的數字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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.