私はCでbegginnerですので、私と一緒にご負担ください。 私は*c
またはc[]
という配列ステートメントを作成できることを知っています。Cのmemsetについての簡単な問題
私の質問はmemsetをについてです:
char str[] = "hello!";
memset (str,'-',2);
puts (str);
作品罰金。 しかし:
char *str = "hello!";
memset (str,'-',2);
puts (str);
いけない仕事、 は私がchar *str = ...
は、通常の配列の文であることを知っています。
誰かが私にこの1つを助けることができれば私はありがとう!
あなたの質問は、ポインタと配列に関して多くの人にお答えします。価値によるコピーやポインタによるコピー(他の人たちがそれをどのように呼び出すかを参考にする)のようなものについて考える。同じ概念がここで2つ起こります。 'char str =" hello ";'は、その配列の中でリテラル文字列 'hello'のコピーを作成し、内部でその文字列を操作できますが、' char * str = "hello"; 'そのリテラル文字列を指すポインタを扱い、 'C'ではそれらを読み書きしますが、書き込み/編集はできません。あなたは今、その違いを理解することを願っています。 – Michi
* cは配列ステートメントではありません。 – Fredrik