に次のコードは、C言語ではなくC++でコンパイルしていない:Cで動作しますが、C++
int *ptr = 25; //why not in C++?
エラー
prog.cpp: In function ‘int main()’:
prog.cpp:6:11: error: invalid conversion from ‘int’ to ‘int*’ [-fpermissive]
int *ptr = 25;
しかし、これは、CおよびC++の両方でコンパイルされます。
int *ptr = 0; //compiles in both
0を割り当てるとうまく機能しないのはなぜですか?
正確にエラーとは何ですか? –
ポインタコンテキストの '0'は特別な意味を持っているためです。 –
'0'はヌルポインタ定数です。 '25 'は有効なポインタ定数ではありません。最初はC言語で警告なしでコンパイルすべきではありません。 –