スレ立てるまでもない質問はここで 157匹目at TECH
スレ立てるまでもない質問はここで 157匹目 - 暇つぶし2ch15:デフォルトの名無しさん
21/06/22 17:48:24.46 zbI9o8nA.net
こいつのプログラムのさ、
#include <stdio.h>
int main(void)
{
int value1 = 10;
int value2 = 20;
printf("1:value1 %d\n",value1);
printf("1:value2 %d\n",value2);
{
int value1;
value1 = 30;
value2 = 40;
printf("2:value1 %d\n",value1);
printf("2:value2 %d\n",value2);
}
printf("3:value1 %d\n",value1);
printf("3:value2 %d\n",value2);
return 0;
}
実行結果がなんで
1:value1 10
1:value2 20
2:value1 30
2:value2 40
3:value1 10
3:value2 40
になるわけ? 最後は3:value2 40でなくて3:value2 20やないの?

16:デフォルトの名無しさん
21/06/22 18:06:37.17 IhZgQU+B.net
>>15
value2は{}でくくられたブロックスコープの変数じゃなく外側のスコープの変数
その変数に代入してるんだから{}ブロックの後に参照する変数も同じ
int value2 = 20;
{
value2 = 40;
}
printf("3:value2 %d¥n",value2);
↑value2だけを見れば{}を削除しても同じ

17:デフォルトの名無しさん
21/06/22 18:14:18.63 zbI9o8nA.net
>>16
それだったらvalue1も
同じ考えで、最後の出力結果が
1:value1 10
1:value2 20
2:value1 30
2:value2 40
3:value1 30
3:value2 40
になるんちゃうの?
value1だけみると最初の出力結果が10はわかるし、
次の出力結果が{}ブロックの30もわかるし、最後の出力結果は最初に宣言された10がそのままなのもわかるけど、
value1の値をベースに考えるならvalue2も20、40、20と変かするんじゃないの???
何かの優先順位とか無視されるとか関係がある?

18:デフォルトの名無しさん
21/06/22 18:26:51.71 gd06pWcX.net
{
int value1;ローカル変数外側からは触れない外側のvalue1とは別物
}

19:デフォルトの名無しさん
21/06/22 18:47:01.58 zbI9o8nA.net
value2は使えてて3回目でもそのままブロック内の表示なのがわからん
value1と同じ道理やないんかい…

20:デフォルトの名無しさん
21/06/22 19:35:16.74 VNXyPYaA.net
そのコードだとvalue1だけ同名で2つ宣言されてるから振る舞いが変わってるだけ
value2は1つしか宣言されてない
違うことを書いているから違う振る舞いをしているというのが道理だよ

21:デフォルトの名無しさん
21/06/22 19:40:46.28 zbI9o8nA.net
ブロック{}内がint value1;だけやわ
int value2もあるおもってた
ああああああああああああああああああああああぶぐぐぐぐぶtっちちブリブリブリブリュリュリュリュリュリュ!!!!!?!ブツチチブブブチチチチブリリイリブブブブゥゥゥゥッッッ!!!!!!!

22:デフォルトの名無しさん
21/06/22 19:42:26.31 zbI9o8nA.net
問題はなぜあると思ってたやけど、
ただコピペして実行して眺めてただけで自分で書いていないから気づいていなかったのかもしれない

23:デフォルトの名無しさん
21/06/22 23:01:13.33 zbI9o8nA.net
>>20
最も説明が上手だったのではなまるを進呈します
他はなにもしません。説明下手糞。

24:デフォルトの名無しさん
21/06/23 07:26:30.14 o1CBRtXz.net
GCCとかClangは-Wshadowつけてコンパイルするとすぐ気づけるよ

25:デフォルトの名無しさん
21/06/23 13:20:41.56 6jEPjWCz.net
こういう馬鹿を防止するために
python は global を使うことにした

26:デフォルトの名無しさん
21/06/24 23:28:11.86 2tLDl2Dd.net
入門レベルです
写経をするのが効果的な学習だと言うのでツイッターの写経をしたいのですがどうすればツイッターのコードを確認出来ますか?
それから競技プログラミングを始めてみたいのですがどのくらいの数学力が求められますか?また他に学習したほうがよい科目はありますか?
よろしくお願いします

27:デフォルトの名無しさん
21/06/24 23:38:58.07 KFTtHP2O.net
>>26
ツイッターはスマホアプリとウェブアプリの二種類ある。スマホアプリのツイッターの主要ソースコードは非公開。
ウェブアプリのツイッターは一部はHTMLとして閲覧可能。見たいならブラウザの「開発者ツール」の「HTMLソース表示」を選ぶ。しかし、見たとしても多分理解できない。
字数制限があり、画像が劣化するツイッターのコンテンツで学習するのは、間抜けのすることだ。

28:デフォルトの名無しさん
21/06/24 23:52:28.90 KFTtHP2O.net
>>26
ツイッターのソースコードそのものを見ることは出来ないけど、ツイッターのAPIでツイッターアカウントを操作することはある程度できます。「ツイッター API 使い方」で検索下さい。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch