Aşağıdaki iki program beni gerçekten karıştırıyor. İlk programda const char*
kullanıyorum ve dizeyi yeniden atayabilirim. İkinci örnekte bir const char[]
kullanıyorum ve şimdi dizeyi yeniden atayamıyorum. Birisi bunun neden olduğunu açıklayabilir mi?char in char ve pointer dizisi C++
#include <iostream>
using namespace std;
const char* x {"one"};
void callthis(const char t[]);
int main()
{
callthis("two");
return 0;
}
void callthis(const char t[]){
t=x; // OK
// OR
// x=t; // OK
}
:
#include <iostream>
using namespace std;
const char x[] {"three"};
void callthis(const char* t);
int main(){
callthis("four");
return 0;
}
void callthis(const char* t){
x=t; // error: assignment of read-only variable 'x';
// error : incompatible types in assignment of
// 'const char*' to 'const char [6]'
}