使用argv访问参数

时间:2012-05-08 03:26:03

标签: c argv

这是我一直在测试的东西,只是打印出一堆东西,但有一个案例我不能完全弄清楚。

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

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

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

2 个答案:

答案 0 :(得分:5)

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

您可以通过atoi

执行此操作
int num_bytes = atoi(argv[1]);

答案 1 :(得分:0)

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