トップページ⇒tech
1001コメント330KB

【初心者歓迎】C/C++室 Ver.54【環境依存OK】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2008/05/14(水) 01:00:02
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
【前スレ】
【初心者歓迎】C/C++室 Ver.53【環境依存OK】
http://pc11.2ch.net/test/read.cgi/tech/1208989385/l50
【アップローダー】(質問が長い時はココ使うと便利)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
0154デフォルトの名無しさん2008/05/21(水) 00:43:08
グローバル変数よりローカル変数の方が優先されるんだよ
でも二回目に表示されるxはスコープをy=xを終えた後
スコープを抜けて無効になるから結果が7になる
0155デフォルトの名無しさん2008/05/21(水) 00:44:02
日本語が…
>二回目に表示されるxはy=xを終えた後
の間違いでした
0156デフォルトの名無しさん2008/05/21(水) 00:44:51
>>153
*&xはいつもxと同じ、わざわざxと並べる意味はない。
外のxと中のxを別の変数だと思えば、理解しやすいと思う。

int グローバルなx=1;

void f(int *p) {
*p+=グローバルなx;
}
int main(void) {
  int y;
  f(&グローバルなx);
  printf("*&x=%d,x=%d\n",*&グローバルなx,グローバルなx);
  {
    int ローカルなx=5;
    printf("*&x=%d,x=%d\n",*&ローカルなx,ローカルなx);
    f(&ローカルなx);
    y=ローカルなx;
  }
  グローバルなx=y;
  printf("%d\n",グローバルなx);
  return 0;
}
■ このスレッドは過去ログ倉庫に格納されています