検索
ホームページバックエンド開発C#.Net チュートリアル文字列の代入とはどういう意味ですか?

文字列は主にプログラミングに使用されます。文字列はストレージ内の文字配列に似ているため、各ビットの単一要素を抽出できます。たとえば、s="abcdefghij"、s[1]="a"、s [9]="j" で、文字列のゼロ位置は s[0]=10 のようにその長さになります (※Ansistring には上記の機能はありません)。これにより、次のような非常に便利になります。高精度な演算として 各ビットを数値に変換し、配列に格納できます。

文字列の代入とはどういう意味ですか?

#ただし、文字列の割り当てには特定の要件があり、たとえば、C 言語の演算子は文字列をまったく操作できません。 C 言語では文字列は配列として扱われるため、文字列には配列と同様の制限があり、特に C 言語の演算子を使用してコピーしたり比較したりすることはできません。

文字列の割り当て方法

C 言語では、文字列表現の形式が 2 つあります。1 つは、char str[20] などの文字配列の形式です。 ="I love china"; もう 1 つは、char *str="I love china" などの文字ポインタの形式です。文字列を文字ポインター変数に割り当てたり、文字配列に文字列を格納したりできます。 C 言語は文字列に対する構文上の糖サポートを直接提供していないためです。さらに、C 標準ライブラリの多くのメソッドは、NULL 文字終了に基づいて文字列を処理するため、これを覚えておく必要があります。

char *p,a='5';
p=&a;                     //显然是正确的,
p="abcd";              //但为什么也可以这样赋值??

上記のプログラムでは、二重引用符は 3 つのことを行います: (定数領域に) スペースを適用して文字列を保存する; 文字列の最後に '/0' を追加する; アドレスを返す。ここで、返されたアドレスが p に代入されます。

しかし、char *p = “hello”; 式は機能するのに、p を配列に変更して値を割り当てると機能しないのはなぜでしょうか。これは、文字列定数「hello」が式に出現する場合、「hello」式で使用される値は、文字自体ではなく、これらの文字が格納されている (定数領域内の) アドレスであるためです。

つまり、文字を指すポインタ p に文字列を割り当てることはできますが、文字配列に文字列を割り当てることはできません。

char a[10] = “hello”; これも可能ですが、この状況は C 言語の初期化でサポートされています。 char a[10] と書かれている場合、a = "hello" これは間違いです。これは a の配列でもあり、char a[10] = "hello"; これは配列の初期化であり、a[0] = 'h' a[1] = 'e'…と同じです。

しかし、char a [10] に変更すると、 a = "hello" は機能しません。 "hello" に割り当てられる値はアドレスであり、 a にもアドレスがありますが、これはポインタとは異なります. ポインタ の値はアドレスであり、配列の値もアドレスですが定数なので定数に値を代入することはできません。 [3]

テストしてみましょう:

#include <stdio.h> int main(){       char *p = "hello";        printf("%s",p);       
        char a[10];        a = "hello";      
        return 0;}error C2440: &#39;=&#39; : cannot convert from &#39;char [6]&#39; to &#39;char [10]&#39;        There is no context in which this conversion is possible

このようなエラー メッセージが表示された場合は、char a[10] を char a[6]

error C2106: ‘=’ : left operand must be l-value

に変更してみてください。演算子の側は「左辺値」である必要があります。いわゆる「左辺値」とは、プログラム内のメモリ空間を占有し、さまざまな変数など変更可能な量を指します。

ポインタを使用する場合、ポインタはインクリメントできますが、配列名はインクリメントできません。コンパイラは配列にスペースを割り当て、配列のアドレス a は定数を表します。定数のインクリメント自体を次のようにします。絶対に無理です。

同時に、ポインタがインクリメントされると、コンパイラが自動的に型を識別します。たとえば、ポインタが int 型を指している場合、次のアドレスを取得したい場合は、ポインタを p するだけです。 p4は気にしないでください。

void ポインターを使用する場合、void コンパイラーは型の長さ (つまり、ポインターが指すオブジェクトのボリューム) を認識できないため、ポインター演算は使用できないことに注意してください。これは不正です。つまり、数学演算は実行できず、* 値演算も使用できません。使用したい場合は、他の型に変換する必要があります。

以上が文字列の代入とはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
C言語のnullの代替案は何ですかC言語のnullの代替案は何ですかMar 03, 2025 pm 05:37 PM

この記事では、CのNull Poernter recerferenceの課題を調査します。問題は、問題はnullではなく、その誤用であると主張しています。 記事では、参照前のチェック、ポインターInitialiなど、非参照を防止するためのベストプラクティスの詳細

次のレベルのCコンパイラを追加する方法次のレベルのCコンパイラを追加する方法Mar 03, 2025 pm 05:44 PM

この記事では、printf内の\ nエスケープシーケンスを使用してcで新しいライン文字を作成し、関数を置く方法について説明します。 機能を詳しく説明し、出力のラインブレークに使用することを示すコード例を提供します。

どの言語コンパイラが優れていますか?どの言語コンパイラが優れていますか?Mar 03, 2025 pm 05:39 PM

この記事は、Cコンパイラの選択に関する初心者を案内しています。 GCCは、使いやすさ、幅広い可用性、広範なリソースが初心者に最適であるため、最適であると主張しています。 ただし、GCC、Clang、MSVC、およびTCCも比較して、その違いを強調しています

nullは、C言語での最新のプログラミングではまだ重要ですか?nullは、C言語での最新のプログラミングではまだ重要ですか?Mar 03, 2025 pm 05:35 PM

この記事では、現代のCプログラミングにおけるNullの継続的な重要性を強調しています。 進歩にもかかわらず、Nullは明示的なポインター管理にとって重要なままであり、有効なメモリアドレスがないことをマークすることにより、セグメンテーションの障害を防ぎます。 最高のPRAC

C言語コンパイラのWebバージョンは何ですか?C言語コンパイラのWebバージョンは何ですか?Mar 03, 2025 pm 05:42 PM

この記事では、初心者向けのオンラインCコンパイラをレビューし、使いやすさとデバッグ機能に焦点を当てています。 OnlineGDBとRepl.itは、ユーザーフレンドリーなインターフェイスと役立つデバッグツールのために強調表示されます。 プログラムやコンパイルなどのその他のオプション

C言語コンパイラによるコードをコピーする方法C言語コンパイラによるコードをコピーする方法Mar 03, 2025 pm 05:43 PM

この記事では、C IDEでの効率的なコードコピーについて説明します。 コピーはコンパイラ機能ではなくIDE機能であり、IDE選択ツールの使用、コード折りたたみ、検索/交換、テンプラなど、効率を向上させるための詳細戦略であることを強調しています。

c言語オンラインプログラミングウェブサイトc言語コンパイラ公式ウェブサイトの要約c言語オンラインプログラミングウェブサイトc言語コンパイラ公式ウェブサイトの要約Mar 03, 2025 pm 05:41 PM

この記事では、オンラインCプログラミングプラットフォームを比較し、デバッグツール、IDE機能、標準コンプライアンス、メモリ/実行の制限などの機能の違いを強調しています。 「最良の」プラットフォームはユーザーのニーズに依存していると主張しています。

C言語コンパイラによって出力ウィンドウをポップアップしないという問題を解決する方法C言語コンパイラによって出力ウィンドウをポップアップしないという問題を解決する方法Mar 03, 2025 pm 05:40 PM

この記事では、Cプログラムのコンパイルでの出力Windowsの欠落をトラブルシューティングします。 実行可能ファイルの実行に失敗し、プログラムエラー、誤ったコンパイラ設定、バックグラウンドプロセス、迅速なプログラム終了などの原因を調べます。ソリューションにはchが含まれます

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター