我以为我可以将字符串指针传递给函数:
int main()
{
const char fileName[] = "network/fileName.yo";
WriteFile(fileName);
}
int WriteNetwork(char* fileName)
{
printf("the filename is %s\n", fileName);
}
Run Code Online (Sandbox Code Playgroud)
但这似乎不像我期望的那样有效.我必须错过一些非常简单的东西,但似乎无法追踪它!
指向字符串文字的指针未传递给WriteFile(). fileName[]用字符串文字初始化"network/fileName.yo".它fileName是传递的变量.因为它是一个数组,它被转换为指向其第一个元素的指针.
WriteNetwork()在使用之前声明或定义.
将指向const数据的指针传递给期望指向非const数据的指针的函数应该无法编译.更改WriteNetwork()为接受const指针.@LưuVĩnhPhúc
另请注意,该帖似乎被WriteFile()视为WriteNetwork() @Ray Toal.当然这是一个文书错误,函数名称和调用应该是相同的.
// int WriteNetwork(const char* fileName) {
int WriteFile(const char* fileName) {
printf("the filename is %s\n", fileName);
}
int main(void) {
const char fileName[] = "network/fileName.yo";
WriteFile(fileName);
}
Run Code Online (Sandbox Code Playgroud)
我必须错过一些非常简单的东西,但似乎无法追踪它!
提示:节省时间.启用所有编译器警告.他们提供快速反馈,帮助您"追踪".