ディスプレイに渡された引数が同じタイプであるため、次のコードがエラーを生成しない理由がわかりません。つまりchar
、const
本当に違いがありますか?
#include<iostream>
using namespace std;
void display(char *p)
{
cout<<p;
}
void display(const char *p)
{
cout<<p;
}
int main()
{
display("Hello");
display("World");
}
編集 回答によると、最初のディスプレイは呼び出されません。これは正しく、出力もそうです。
しかし、私はそれを次のようにするとします:
int main()
{
char *p="Hello";
display(p);//now first display is called.
display("World");
}
コンパイラは a をwarning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
返しますが、最初の表示を呼び出します。これは、文字列が定数として扱われなくなったことを意味しますか?