【发布时间】:2012-07-30 01:39:51
【问题描述】:
谁能给我解释一下我在这里不明白的地方吗?
我正在尝试将参数作为“字符串”传递(我知道 c 中没有字符串),以便稍后我可以将该字符串与其他函数一起使用,例如必须传递的文件名。 但是不知道为什么不接受或者应该是什么类型
#include <stdio.h>
int main ( int argc, char *argv[] )
{
char *array= argv[0];
foo(*array);
}
void foo( char *array)
// notice the return type - it's a pointer
{
printf(array);
}
非常感谢!
【问题讨论】:
-
您在将数组传递给 foo.所以你只传递第一个字节值,如果它是一个 c 字符串文字
-
你应该避免使用
printf(s)这样的表达式,因为它是一个不受控制的格式字符串。