2016-11-17 5 views
-1

私はこのコードを持っており、問題があります。char str []とchar * strの違いは何ですか?

#include <iostream> 
#include <stdio.h> 
using namespace std; 
void main() 
{ 
char* str="hello_world"; 
cout<<str<<endl; 
str[3]='\0'; 
cout<<str<<endl; 
} 

が、私はchar str[]char* strを変更した場合。 うまく動作します。なぜですか?

答えて

0

char str []を宣言すると、charの配列(読み書き可能)が宣言されています。この配列は文字列に初期化されています。つまり、 "This is test string"がコピーされます。この配列内の要素

char * strを宣言すると、コピーではなく定数リテラルを直接指すポインタが宣言されます。これらは読めるだけです。

-1

char str []を使用するとstrが割り当てられますが、char * strを使用するとそうではありません。

関連する問題