我有这样的代码:的C指针不工作
#include<stdio.h>
int main(int args,char*argv[])
{
char *input_f;
input_f=(argv+1);
printf("%d\n",input_f);
printf("%d\n",(argv+1));
printf("%s\n",*(argv+1));
printf("%s\n",argv[1]);
printf("%s\n",*input_f);
return 0;
}
但是,如果我运行它(test.exe hi.txt
)输出将是:
1577880
1577880
hi.txt
hi.txt
(null)
如何创建指向argv[1]
的指针?
为什么我的代码不起作用?
编辑:该方案需要一个文件,在输入和指针input_f
点,但在输出argv[1]
打印的文件名,但input_f
不!
你认为的argv [1]是什么?你认为它的价值应该是什么?你能指望什么?您的代码的哪一部分没有按照您的预期行事? – Yunnosch
'input_f'没有被声明,并且'printf(“%d \ n”,(argv + 1))'在'argv [1]'处将整个地址打印出来。你想要输出什么?目前还不清楚你想要做什么。 – lurker
你的编译器是否保持沉默?我猜不是...... –