teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

sの(p,q)とは何なのか?わかりにくかったので文を修正させて頂きました。

2022/01/08 08:51

投稿

kinoko-_.
kinoko-_.

スコア8

title CHANGED
File without changes
body CHANGED
@@ -7,6 +7,18 @@
7
7
  return文の際にreturn string(p + stm.p, q + stm.q)と書くとなぜしっかりpとqの足した値が返ってくるのでしょうか?
8
8
  return文の際、stringの型で返さなければsの(p,q)だけ計算される仕組みがよくわかりません。
9
9
 
10
+ ※sの(p,q)とはsのオブジェクトの値であるs(200, 300)を指します。
11
+ 本来ならreturn string(p + stm.p, q + stm.q)すると
12
+ sの200の値とwの100の値が足し合わさってeのpには300が格納され
13
+ eのqにはsのqとwのqが足し合わさってeのqには500が格納されるコードです。
14
+ ただreturn文で
15
+ return string(p + stm.p, q + stm.q)
16
+ 上記のような記述をするとしっかり計算してくれるのですが
17
+ return (p + stm.p, q + stm.q)
18
+ 上記のような書き方をすると値が(500,0)と表示されてしまいます。
19
+ このように帰ってくるのはなぜなのか
20
+ このあたりの挙動がよくわかりません。
21
+
10
22
  struct string
11
23
  {
12
24
  int p;