1

这是我一直在通过打印一堆东西来测试的东西,但是由于某种原因我无法完全弄清楚一个案例。

我需要将一个整数作为参数传递给稍后使用的函数,但是当我再次打印它以确保我正确存储它时,我得到一个随机数。这是代码的相关部分:

int num_bytes = argv[1]; 
....
printf("Max number of bytes: %d", num_bytes);

我只向函数传递了一个参数,它是一个 int。我还尝试将 argv[1] 转换为 int,但这也不起作用。我不确定这是否是 printf 的问题。如果只是这样,我不介意。我只需要知道我将值正确存储为 int 即可。我知道 argv 是指向字符串的指针数组(我认为是 C 字符串?),但我认为您可以将字符转换为整数。

4

2 回答 2

5

char **argv被认为是一个字符数组(或字符串)。您需要argv先将内部的值转换为整数。

您可以通过以下方式做到这一点atoi

int num_bytes = atoi(argv[1]);
于 2012-05-08T03:31:01.873 回答
0

argv 是指向字符串数组的指针。您需要调用 atoi(argv[1]) 来获取您传递的整数参数。

于 2012-05-08T03:35:10.227 回答