文章所写内容,都是自己实际编程中遇到的,通常是在遇到这个问题时,在网上搜索或者自己找到解决办法。
有时候,某些问题要花好久才找的到解决方案,因为网上资料较少,也有可能是我搜索能力不强。
写下这些,一是希望能帮助到遇到同样问题的朋友,二是记下之后,再次遇到这些问题,能记得解决办法。
由于平时工作都很忙,所以我的文章大多都只简单的写了方法,没讲解得太详细。
还是希望能够帮助到有需要的朋友们。
类似的字符串常量实际是常量字符数组。
即"agag"的实际类型是const char[5]。
这里根据自己的编程经验给出两点依据。
希望对于此结论的正确性有异议的朋友们给出指点。
依据一:
#include <iostream>
using namespace std;
template<typename type,int size>
ostream& operator<<(ostream& os,const type (&ar)[size])
{
for(int i = 0 ; i < size ; ++i)
os<<ar[i]<<'/t';
os<<endl;
return os;
}
int main()
{
cout<<"agag";
getchar();
}
程序运行结果如下:
即,这里"agag"被当做了字符数组,而调用了上面重载的operator<<函数。
依据二:
#include <iostream>
using namespace std;
void fff(char (&ar)[3])
{
cout<<ar;
}
int main()
{
fff("adad");
getchar();
}
编译上面的程序出现如下错误提示:
根据上面两点,得出字符串常量是const char数组类型。