簡體   English   中英

在C中使用char指針傳遞int

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM