我正在制作的这个 C 程序从命令行读取一组字符并使用数组 (argv[]) 像这样存储它们
main (int argc, char *argv[]) {
int temp;
/*prevents no arguments*/
if (argc==1){
printf("Usage;\t[0 < integers < 9] [operators]\n");
exit(0);
}
int i;
for (i = 0 ; i<argc; i++){
temp = argv[i] - '0';
printf("this is char %d ; %d\n",i, temp);
}
}
但是我在命令行中运行它之后得到的只是这样;
program 2 4 1 - +
是随机垃圾
this is char 0 ; -4195956
this is char 1 ; -4195950
this is char 2 ; -4195948
this is char 3 ; -4195946
this is char 4 ; -4195944
this is char 5 ; -4195942
我投射温度的方式有问题吗?还是我只是错误地理解了指针(在 *argv[] 中)?