由于需要, 所以小写一下。
main.cpp中的代码为:
#include <iostream>
using namespace std;
extern char str[];
int main()
{
cout << str << endl;
return 0;
}
test.cpp中的代码为:
char str[100] = "abcdefg";
程序的结果为:abcdefg
下一道菜:
main.cpp
#include <iostream>
using namespace std;
void print();
extern char str[];
int main()
{
cout << str << endl;
// cout << sizeof(str) << endl; //编译错误
cout << strlen(str) << endl; // 7
strcpy(str, "xyz");
cout << str << endl;
print(); // 输出hello world, xyz, 可见, 上面的strcpy改变了test.cpp中的值
return 0;
}
#include <stdio.h>
char str[100] = "abcdefg";
void print()
{
printf("hello world, %s\n", str);
}
abcdefg
7
xyz
hello world, xyz
最后看一下void print();和(void)print();的区别:
void print();是生命, 而(void)print();是调用, 在代码中非常常见, 为什么要加(void)呢, 多数为了通过静态检查工具的检查。