わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

「char *型」のデメリット(の一つ)

char *p; と書けば,「char *」型の変数pを宣言する

と説明することのデメリットの一つとして,「char* p, q;」と書いたとき,変数qは,ポインタ型ではなくchar型になる,ということが挙げられます.
これに対して,反論を試みてみますと

  • 一括宣言でポインタ変数を作りたいが,「*」と書くのを減らしたい,というのであれば,「typedef char *charp; charp p, q;」と書けばいいでしょう.
  • 配列の一括宣言で「int a[3], b[5];」と書くことができますが,このときのaはint [3]型,bはint [5]型と解釈されます.一つの宣言で宣言される複数の変数が,同一の型であることは,要請されていないわけです.だから,変数一つ一つに対して何型になるかをチェックしながら,使っていくべきです.