Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

Cでのchars[]とchar*sの違い


文字列がchars[]を使用して作成されることもあれば、char*sを使用することもあります。では、ここで違いがあるのか​​、それとも同じなのかを確認します。

いくつかの違いがあります。 s []は配列ですが、*sはポインターです。たとえば、2つの宣言がそれぞれchars[20]とchar*sのような場合、sizeof()を使用すると20と4が得られます。最初の宣言は20バイトであることを示しているため、最初の宣言は20になります。データの。しかし、これは1つのポインター変数のサイズであるため、2番目のものは4つしか表示していません。配列の場合、合計文字列はスタックセクションに格納されますが、ポインタの場合、ポインタ変数はスタックセクションに格納され、コンテンツはコードセクションに格納されます。そして最も重要な違いは、ポインタ型の文字列を編集できないことです。したがって、これは読み取り専用です。ただし、文字列の配列表現を編集することはできます。

#include<stdio.h>
main() {
   char s[] = "Hello World";
   s[6] = 'x'; //try to edit letter at position 6
   printf("%s", s);
}

出力

Hello xorld
Here edit is successful. Now let us check for the pointer type string.

#include<stdio.h>
main() {
   char *s = "Hello World";
   s[6] = 'x'; //try to edit letter at position 6
   printf("%s", s);
}

出力

Segmentation Fault

  1. C#と.Netの違い

    C#はプログラミング言語であり、.NETはフレームワークです。 .NETには、.NETFrameworkの仮想コンポーネントである共通言語ランタイム(CLR)があります。 .NETにはC#があるだけでなく、それを介してVB、F#などを操作できます。 C#は.NETの一部であり、次の機能があります- ブール条件 自動ガベージコレクション 標準ライブラリ アセンブリのバージョン管理 プロパティとイベント デリゲートとイベント管理 使いやすいジェネリック インデクサー 条件付きコンパイル シンプルなマルチスレッド LINQおよびLambda式 Windowsとの統合

  2. GoとJavaの違い。

    行く Goは手続き型プログラミング言語です。プログラムはパッケージを使用して組み立てられます。動的言語に似たパターンを採用する環境をサポートします。 Java Javaはオブジェクト指向プログラミング言語です。 Javaは静かで高速、信頼性が高く、安全です。最も広く使用されている言語でもあります。 GoとJavaの重要な違いは次のとおりです。 Sr。いいえ。 キー 移動 Java 1 タイプ Goは手続き型プログラミング言語であり、動的言語と同様のパターンをサポートしています。 Javaはオブジェクト指向プログラミング言語です。 2 クラスのサポート