【发布时间】:2016-05-10 15:26:39
【问题描述】:
您好,我是 C 新手,我在使用“阶乘 8”运行程序时尝试打印 8。我得到的是 56,而不是 8。谁能解释为什么?
#include <stdio.h>
int main(int argc, char **argv)
{
int input;
if(argv[1] == NULL)
{
printf("Error: please supply an integer on the command line.\n");
return 0;
}
input = *argv[1];
printf("%d", input);
return 0;
}
【问题讨论】:
-
argv[1] 是一个指向字符的指针。将 argv[1] 分配给 i 时,需要使用函数 atoi 将其转换为整数。如果您注意到 56 是 '8' 的 ascii 代码。
标签: c