[解決済み】C言語のchar arrayとchar pointerの違いは何ですか?
2022-04-03 21:57:42
質問
C言語でポインタを理解しようとしているのですが、現在次のようなことで混乱しています。
-
char *p = "hello"
で始まる文字配列を指すcharポインタです。 h .
-
char p[] = "hello"
を格納する配列です。 こんにちは .
この関数にこれら両方の変数を渡すと、どのような違いがあるのでしょうか?
void printSomething(char *p)
{
printf("p: %s",p);
}
解決方法は?
char*
と
char[]
は異なるタイプ
が、すべてのケースですぐにわかるわけではありません。これは、配列
ポインタに分解する
つまり、もし型
char[]
が提供された場合
char*
が期待される場合、コンパイラは自動的に配列をその最初の要素へのポインタに変換します。
あなたのサンプル関数
printSomething
はポインタを想定しているので、このように配列を渡そうとすると
char s[10] = "hello";
printSomething(s);
コンパイラは、あなたがこれを書いたように見せかけます。
char s[10] = "hello";
printSomething(&s[0]);
関連
-
[解決済み】メモリー・クロバリング・エラー
-
[解決済み】エラー:不明な型名'bool'
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] スマートポインターとは何ですか?
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] ++iとi++の違いは何ですか?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Cコンパイルエラー。"変数サイズのオブジェクトが初期化されていない可能性がある"
-
[解決済み】Valgrind - strcpyのサイズ1の無効な書き込み
-
[解決済み】C 言語の添え字で配列の要素値を代入すると、配列でもポインタでもベクトルでもない値になる
-
[解決済み】エラー:'for'ループの初期宣言はC99モードでしかできない【重複
-
[解決済み】スレッド1:EXC_BAD_ACCESS(コード=1、アドレス=0x0)標準Cメモリ問題
-
[解決済み】LEALアセンブリ命令は何をするのですか?
-
[解決済み】未定義参照 makefile が間違っているのかも?
-
[解決済み] '{'トークンの前に期待される式
-
[解決済み】execvp: バッドアドレスエラー
-
[解決済み】シンプルなC言語のscanfが機能しない?重複