回答編集履歴

2

ポインタ変数の場合を追加

2019/10/11 09:29

投稿

jimbe
jimbe

スコア13202

test CHANGED
@@ -45,3 +45,23 @@
45
45
  ```
46
46
 
47
47
  こうすればコメント通りに動作するかと思います.
48
+
49
+
50
+
51
+ ----
52
+
53
+
54
+
55
+ ++ や -- で +1/-1 以外の動作をする場合として, ポインタ変数のインクリメント/デクリメントがあります.
56
+
57
+ 例えば, char *p に対し p++ を行うとポインタは +1 され, short *p に対し p++ では(short が 2バイトの処理系なら) +2 されます.
58
+
59
+ ```
60
+
61
+ short *p = (short *)0;
62
+
63
+ p++;
64
+
65
+ printf("%d\n",p);
66
+
67
+ ```

1

コード追加

2019/10/11 09:28

投稿

jimbe
jimbe

スコア13202

test CHANGED
@@ -5,3 +5,43 @@
5
5
 
6
6
 
7
7
  ++ や -- はコードの入力量を極力(1文字でも)少なくする為にあるような(もちろん他の理由もありますが)演算子ですので, 例えば +2 するために ```x++++;``` と書くのと ```X+=2;``` と書くのでは後者のほうが入力量が少なくなり, '+'を連ねる書き方は存在意義が薄れます.
8
+
9
+
10
+
11
+ なお,
12
+
13
+ ```
14
+
15
+ /*下記で10、11、12、13、14と表示したい*/
16
+
17
+ printf("%d,¥t", x);
18
+
19
+ printf("%d,¥t", x++);
20
+
21
+ printf("%d,¥t", x++++);
22
+
23
+ printf("%d,¥t", x++++++);
24
+
25
+ printf("%d,¥n", x++++++++);
26
+
27
+ ```
28
+
29
+ は例え ++ を連ねたらその分加算が増えるという動作をしたとしても, コメントのようには動作しないと思います.
30
+
31
+ ```
32
+
33
+ /*下記で10、11、12、13、14と表示したい*/
34
+
35
+ printf("%d,¥t", x++);
36
+
37
+ printf("%d,¥t", x++);
38
+
39
+ printf("%d,¥t", x++);
40
+
41
+ printf("%d,¥t", x++);
42
+
43
+ printf("%d,¥n", x);
44
+
45
+ ```
46
+
47
+ こうすればコメント通りに動作するかと思います.