見出し画像

C言語教室 第34回 - 型修飾子あれこれ(回答)

こちらの記事の課題回答です。

なんだか、いきなり第34回まですっとばしてしまった気もするけど。

課題

char s[] = “abcdefg”;
const char *p = s;
char * const q = s;

このとき、pとqで何が違うのかを説明しなさい。

回答

p はポインタの先のデータを変更できなくて、
q はポインタそのものを変更できない。

コードで書くとこんな感じ。

int main()
{
	char s[] = "abcdefg";
	char t[] = "hijklmn";
	const char *p = s;
	char * const q = s;

	p = t;
	p[0] = 'z';		/* コンパイルエラー */

	q = t;			/* コンパイルエラー */
	q[0] = 'z';
}

ついでにこちらも(笑)。


この記事が気に入ったらサポートをしてみませんか?