宣言/charの配列とcharのポインタの違い
の編集
Top
/
宣言
/
charの配列とcharのポインタの違い
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) * char[]とchar*の違い [#hb6dd4e0] charの配列(char[])とcharのポインタ(char*)の違いをCサンプルコードを交えて説明します。 #contents #htmlinsertpcsp(c-top.html,c-sp.html) * 関連記事 [#x7e6adec] -[[bool型を使用する>宣言/bool型を使用する]] -[[charの配列とcharのポインタの違い>宣言/charの配列とcharのポインタの違い]] -[[enumのサンプルコード>宣言/enumのサンプルコード]] * char[]とchar*でCサンプルコードを作成してみる [#o134b5ab] 以下にchar[]とchar*でCサンプルコードを作って実行してみます。~ サンプルコードは指定した配列部分の文字を変更するだけのものです。 ** char[]のサンプルコード [#t2d4dc9e] &ref(char1.c); (改行コードLF) #include <stdio.h> int main(void) { char s[] = "hello world"; s[0] = 'H'; printf("%s\n", s); return 0; } 以下、コンパイルして実行した時の出力です。 $ gcc char1.c -o char1 $ ./char1 Hello world ** char*のサンプルコード [#m38e5d8c] &ref(char2.c); (改行コードLF) #include <stdio.h> int main(void) { char *s = "hello world"; s[0] = 'H'; printf("%s\n", s); return 0; } 以下、コンパイルして実行した時の出力です。 $ gcc char2.c -o char2 $ ./char2 Segmentation fault * まとめ [#e04db26d] char*で文字列を指定して、配列操作で値を入れ替えようとすると Segmentation fault が表示され終了してしまいます。~ これは、char*で文字列を指定すると変更不可の文字列として宣言されるためです。~ したがって、変更する場合はchar[]として宣言する必要があります。 以上、char[]とchar*の違いについての記述でした。 #htmlinsertpcsp(c-btm.html,c-sp.html)
タイムスタンプを変更しない
#navi(../) * char[]とchar*の違い [#hb6dd4e0] charの配列(char[])とcharのポインタ(char*)の違いをCサンプルコードを交えて説明します。 #contents #htmlinsertpcsp(c-top.html,c-sp.html) * 関連記事 [#x7e6adec] -[[bool型を使用する>宣言/bool型を使用する]] -[[charの配列とcharのポインタの違い>宣言/charの配列とcharのポインタの違い]] -[[enumのサンプルコード>宣言/enumのサンプルコード]] * char[]とchar*でCサンプルコードを作成してみる [#o134b5ab] 以下にchar[]とchar*でCサンプルコードを作って実行してみます。~ サンプルコードは指定した配列部分の文字を変更するだけのものです。 ** char[]のサンプルコード [#t2d4dc9e] &ref(char1.c); (改行コードLF) #include <stdio.h> int main(void) { char s[] = "hello world"; s[0] = 'H'; printf("%s\n", s); return 0; } 以下、コンパイルして実行した時の出力です。 $ gcc char1.c -o char1 $ ./char1 Hello world ** char*のサンプルコード [#m38e5d8c] &ref(char2.c); (改行コードLF) #include <stdio.h> int main(void) { char *s = "hello world"; s[0] = 'H'; printf("%s\n", s); return 0; } 以下、コンパイルして実行した時の出力です。 $ gcc char2.c -o char2 $ ./char2 Segmentation fault * まとめ [#e04db26d] char*で文字列を指定して、配列操作で値を入れ替えようとすると Segmentation fault が表示され終了してしまいます。~ これは、char*で文字列を指定すると変更不可の文字列として宣言されるためです。~ したがって、変更する場合はchar[]として宣言する必要があります。 以上、char[]とchar*の違いについての記述でした。 #htmlinsertpcsp(c-btm.html,c-sp.html)
テキスト整形のルールを表示する
添付ファイル:
char1.c
573件
[
詳細
]
char2.c
515件
[
詳細
]