2019-12-01

C言語で分からないところがあるので質問しま

以下のコードで出力されるものが異なってしまうのは何故なんでしょうか?

#include <stdio.h>

void main(){
  char  s[6]="aiueo";
  char* p = &s[0];
  //p ="X\0";
  p="aaaaaa";
  printf("%s;%s \n",s,p);
}

よろしくお願いいたします。

  • うんこ

  • aaaaaaを出力しようとしてポインタのアドレスにあるデータ出力してるだけやん

    • sを書き換えたいんです。sの一部を書き換えるためにはどうすればいいんでしょう?

      • s[0]='a';s[1]='a';s[2]='a';s[3]='a';s[4]='a';

        • つまり、C言語でのソース上の文字列(例"AIUEO")は「新たなメモリ領域にchar* として宣言されたデータ」なのでそれを代入しても上書きすることにはならない、ってことなわけですね… st...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん