何故、引数にconstがついているのか

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
kouki2299
記事: 1
登録日時: 1年前

何故、引数にconstがついているのか

#1

投稿記事 by kouki2299 » 1年前

はじめまして
ある試験のサンプル問題を解いていたのですが、

char *func_c(char *s1, const char *s2)
{
char *s3 = s1;
for ( ; *s2; s2++ )
*s1++ = *s2;
*s1 = '¥0';
return s3;
}
解答群
ア strcat イ strchr ウ strcmp エ strcpy オ strlen

という問で引数char*s2にconstがついているのはなぜでしょうか?

box
記事: 2002
登録日時: 13年前

Re: 何故、引数にconstがついているのか

#2

投稿記事 by box » 1年前

s2の値を変更したら(つまりs2に何かを代入したら)ダメだよ、警告を出すよ
てなくらいの意味です。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 何故、引数にconstがついているのか

#3

投稿記事 by みけCAT » 1年前

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
box さんが書きました:
1年前
s2の値を変更したら(つまりs2に何かを代入したら)ダメだよ、警告を出すよ
てなくらいの意味です。
違います。
この場合、s2「が指しているもの」の値を変更したらダメ、という意味です。
実際、s2++ でs2の値は変更されていますよね。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

返信

“C言語何でも質問掲示板” へ戻る