質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

1253閲覧

C++でわからないところ

退会済みユーザー

退会済みユーザー

総合スコア0

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2016/11/09 06:53

C++の勉強をしているのですが、いくつか自分で調べてもわからなかったので質問させてください

リンク内容

上記のサイトにあるコードについてです

1, putPiece関数の for (int wn = 0;; wn++)とはどういったfor文なのでしょうか?

インクリメントだけということは中のbreak条件に満たされるまで回るということですか?

2, WinMain関数の if (isPass(turn))はどういう条件なのでしょうか

3,さきほどのif (isPass(turn))のbool (*think[])(int) = {think1, think2};は型変換をして配列に代入してるんですか?

4,さらにその下のif ((*think[turn - 1])(turn))の動きについて教えてください

長々とすいません

よろしくお願いします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

該当箇所しか読んでいませんが、

1, putPiece関数の for (int wn = 0;; wn++)とはどういったfor文なのでしょうか?

インクリメントだけということは中のbreak条件に満たされるまで回るということですか?

そうですfor(;;)なら無限ループというような書き方ができます、そこにカウンタの初期値とインクリメントはしているというfor文

2, WinMain関数の if (isPass(turn))はどういう条件なのでしょうか

リンク先に「turnが1なら黒コマ、2なら白コマをチェックし、パスならばtrueを返します。」と解説されています。

3,さきほどのif (isPass(turn))のbool (*think[])(int) = {think1, think2};は型変換をして配列に代入してるんですか?

関数ポインタです。

4,さらにその下のif ((*think[turn - 1])(turn))の動きについて教えてください

turnが1の時は((*think[0])(turn))つまり先ほどの関数ポインタのthink1が実行されturnが2の場合はthink2が実行されるという事です。

###関数ポインタの配列
http://www5c.biglobe.ne.jp/~ecb/c/16_04.html

投稿2016/11/09 07:05

編集2016/11/09 07:07
hiim

総合スコア1689

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/11/09 07:07

ありがとうございます! もう一度みなおしてみます!
guest

0

1, putPiece関数の for (int wn = 0;; wn++)とはどういったfor文なのでしょうか?

wn = 0 から始めて、(途中脱出しない限り) wn++ しながら無限に繰り返します

2, WinMain関数の if (isPass(turn))はどういう条件なのでしょうか

isPass(turn) が true なら...

3,さきほどのif (isPass(turn))のbool (*think[])(int) = {think1, think2};は型変換をして配列に代入してるんですか?

"intを引数に与えるとboolを返す関数"へのポインタ配列: think[] を { think1, think2 } で初期化しています。
int data[] = { 1, 2, 3 } と同じこと。

4,さらにその下のif ((*think[turn - 1])(turn))の動きについて教えてください

think[]には関数へのっポインタが入ってます。
think[turn-1]に入ってる関数を引数:turnで呼び出し、その結果がtrueなら...

投稿2016/11/09 07:09

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問