回答編集履歴

2

追記

2022/01/11 09:45

投稿

fana
fana

スコア11996

test CHANGED
@@ -37,3 +37,51 @@
37
37
  { ... }
38
38
 
39
39
  ```
40
+
41
+
42
+
43
+ ---
44
+
45
+
46
+
47
+ (これはこの質問内容への回答ではないけども)
48
+
49
+ そんなstaticの使い方をせずとも,この程度の話なのではあるまいか…?
50
+
51
+
52
+
53
+ ```
54
+
55
+ int main()
56
+
57
+ {
58
+
59
+ //(ふつーにこんな感じに配列を2個書くのではダメな理由が何かあるのだろうか?)
60
+
61
+ double pc_1[5] = { 1, 0.885, 0.826, 0.794, 0.775 };
62
+
63
+ double pc_2[5] = { 1, 0.769, 0.709, 0.671, 0.645 };
64
+
65
+
66
+
67
+ double *PC;
68
+
69
+ int N;
70
+
71
+
72
+
73
+ //...
74
+
75
+ //(Nの値が1か2になるような処理があるとして)
76
+
77
+
78
+
79
+ PC = ( N==1 ? pc_1 : pc_2 ); //Nの値によってPCが指す先を変える
80
+
81
+
82
+
83
+ //...
84
+
85
+ }
86
+
87
+ ```

1

追記

2022/01/11 09:45

投稿

fana
fana

スコア11996

test CHANGED
@@ -7,3 +7,33 @@
7
7
  * あるいは,「(`PC`の値を使用するよりも前の)全ての処理経路において `PC` に何かを代入する」でも良いかと.
8
8
 
9
9
  (`if(N==1){ ... }else if(N==2){ ... }` だけだと「Nが1でも2でもない場合」を網羅できていない.)
10
+
11
+
12
+
13
+ ---
14
+
15
+
16
+
17
+ > 実際にはN=1 or N=2です
18
+
19
+
20
+
21
+ そういう話ならば,Nが1でない場合に「Nが2か否か」をチェックするのは無駄だよね.
22
+
23
+ 素直に以下のようにすればよいのでは.
24
+
25
+
26
+
27
+ ```C
28
+
29
+ //「Nが1か否か」という話ならば,素直にこう書けば良いのでは.
30
+
31
+ if( N==1 )
32
+
33
+ { ... }
34
+
35
+ else //←単にelseでいいよね
36
+
37
+ { ... }
38
+
39
+ ```