-
C /C++の4次元配列
4次元配列は、3D配列の配列です。 アルゴリズム Begin. Declare the variables. Declare the array elements. Take the no of elements as input. Take the elements as input. Print the elements stored in array. End. これが4Dアレイの例です。 #include<iostream> using namespace std; int main() { int a[2][2][
-
Cでのポインタ演算を使用した配列の合計
このプログラムでは、ポインタ演算を使用して配列要素の合計を見つける必要があります。 ここでは、メモリアドレスに格納されている値を示す*を使用します。このアドレスは、変数に格納されたままになります。したがって、「int * ptr」は、ptrがアドレスを含む変数であり、アドレスの内容が整数であることを意味します。 * pは、それがポインター変数であることを意味します。これとsum()を使用して、配列の要素の合計を求めます。 サンプルコード #include <stdio.h> void s(int* a, int len)&nbs
-
SWIGを使用したPython用のC/C++のラッピング
Pythonで既存のCまたはC++機能をラップする方法は複数あります。このセクションでは、C /C++機能をSWIGでラップする方法を説明します。以下は、Pythonでc /c++機能をラップするための他のオプションです。 手動ラッピング pyrexを使用してCコードをラップします。 Ctypes SIP Pythonのブースト SWIG(Simple Wrapper Interface Generator)は、Perl、Python、PHP、Ruby、Tcl、C#、Common Lisp(CLISP、Allegro、CL、UFFI、CFFI)、Java、Modula-3、 OC
-
Cでの文字列トークン化関数
このセクションでは、Cで文字列をトークン化する方法を説明します。Cにはこのためのライブラリ関数があります。 Cライブラリ関数char* strtok(char * str、const char * delim)は文字列strを壊します 区切り文字delimを使用して一連のトークンに変換します。 以下はstrtok()関数の宣言です。 char *strtok(char *str, const char *delim) 2つのパラメータを取ります。 str-この文字列の内容は変更され、より小さな文字列(トークン)に分割され、delim-これは区切り文字を含むC文字列です。これらは、呼び出し
-
C /C++で現在の作業ディレクトリを調べます
このセクションでは、CまたはC++を使用して現在の作業ディレクトリを取得する方法を説明します。現在のオペレーティングシステムにいくつかのフラグを定義しました。 サンプルコード #ifdef WINDOWS #include <direct.h> #define GetCurrentDir _getcwd #else #include <unistd.h> #define GetCurrentDir getcwd #endif #include<iostream> using namespace std; std::string get_current_d
-
LinuxのC/C ++での文字の標準サイズ(「a」)
C ++では、文字リテラルのサイズはcharです。 Cでは、文字リテラルのタイプは整数(int)です。したがって、Cではsizeof(‘a’)は32ビットアーキテクチャでは4であり、CHAR_BITは8です。ただし、sizeof(char)はCとC++の両方で1バイトです。 サンプルコード #include<stdio.h> main() { printf("%d", sizeof('a')); } 出力 1 サンプルコード #include<iostream> using namespace std; ma
-
C / C ++ではいくつのレベルのポインターを持つことができますか?
実際、Cプログラムでは1つまたは2つの静的レベルのポインターが一般的です。トリプルインダイレクションはまれです。しかし、無限は非常に一般的です。構造体を使用すると、ポインタの間接化を無限に実現できます。 struct list { struct list *next; ... } lst; lst->next->next->next->...->next このようにして、複数のポインターの間接参照を実装できます。 以下に示すような別の表記法があります – *(*(..(*(*(*lst).next).next).next...).next).nex
-
Cの近く、遠く、巨大なポインタ
ポインタの近く ニアポインタは、16ビットが有効になっているコンピュータメモリの特定のセクションで最大16ビットのビットアドレスに使用されるポインタです。一定期間にアクセスできるのは約64kbの小さなサイズのデータのみであり、これが主な欠点です。 ファーポインタ ファーポインタは32ビットポインタであり、特定のセグメントのコンピュータメモリの外部にある情報にアクセスできます。このポインタを使用するには、セグメントにデータアドレスを格納するために自分のセクタレジスタを割り当てる必要があります。また、別のセクタレジスタを最新のセクタ内に格納する必要があります。 巨大なポインター 巨大なポ
-
C /C++のコマンドライン引数
実行時にコマンドラインからCプログラムにいくつかの値を渡すことができます。これらの値はコマンドライン引数と呼ばれ、特にコード内でこれらの値をハードコーディングするのではなく、外部からプログラムを制御する場合に、プログラムにとって重要であることがよくあります。 コマンドライン引数は、main()関数引数を使用して処理されます。argcは渡される引数の数を示し、argv[]はプログラムに渡される各引数を指すポインター配列です。以下は、コマンドラインから引数が指定されているかどうかを確認し、それに応じてアクションを実行する簡単な例です- 例 #include <stdio.h> int
-
CおよびC++でのexit()関数と_Exit()関数
このセクションでは、Cand C ++のexit()と_Exit()の違いを説明します。 Cでは、exit()は、exit()関数の後に存在する残りのコードを実行せずに呼び出しプロセスを終了します。 C ++ 11には、_Exit()と呼ばれる1つの新しい関数があります。では、この関数の特徴は何ですか? exit()関数は、プログラムを終了する前にいくつかのクリーニングを実行します。接続の終了、バッファのフラッシュなどをクリアします。この_Exit()関数は何もクリーンアップしません。 atexit()メソッドを使用してテストすると、機能しません。 最初にexit()関数を使用し、次に次の
-
ファイルのサイズを見つけるためのCプログラム
これは、ファイルのサイズを見つけるためのCプログラムです。 アルゴリズム Begin function findfileSize() Open a file pointer fp in read only mode. If fp is equals to null then Print “File not found” and return -1. Else count the file size.
-
Cのダブルポインター(ポインターからポインター)
ポインタは、変数のアドレスを格納するために使用されます。したがって、ポインタへのポインタを定義するとき、最初のポインタは2番目のポインタのアドレスを格納するために使用されます。したがって、これはダブルポインタとして知られています。 アルゴリズム Begin Declare v of the integer datatype. Initialize v = 76. Declare a pointer p1 of the integer datatype. Declare ano
-
CのNULLポインタ
nullポインターは、何も指さないポインターです。 nullポインタのいくつかの使用法は次のとおりです。 a)ポインタ変数に有効なメモリアドレスがまだ割り当てられていないときに、ポインタ変数を初期化する。 b)有効なメモリアドレスを渡したくないときに、関数の引数にnullポインタを渡す。 c)ポインタ変数にアクセスする前にnullポインタをチェックする。そのため、ポインタ関連のコードでエラー処理を実行できます。 NULLでない場合にのみ、ポインタ変数を間接参照します。 アルゴリズム Begin. Declare a pointer p of the integ
-
Cのvoidポインタ
Cのvoidポインターは、どのデータ型にも関連付けられていないポインターです。これは、ストレージ内のデータの場所を指し、変数のアドレスを指します。汎用ポインタとも呼ばれます。 Cでは、malloc()およびcalloc()関数はvoid*またはジェネリックポインターを返します。 いくつかの制限があります- 1)voidポインターは具体的なサイズであるため、ポインター演算はできません。 2)逆参照として使用することはできません。 アルゴリズム Begin Declare a of the integer datatype.
-
C / C ++でアドレスゼロがnullポインタに使用されるのはなぜですか?
ヌルポインタは何も指さないポインタです。 nullポインタのいくつかの使用法は次のとおりです。 b)ポインタ変数に有効なメモリアドレスがまだ割り当てられていないときに、ポインタ変数を初期化する。 b)有効なメモリアドレスを渡したくないときに、関数の引数にnullポインタを渡す。 c)ポインタ変数にアクセスする前にnullポインタをチェックする。そのため、ポインタ関連のコードでエラー処理を実行できます。 NULLでない場合にのみ、ポインタ変数を間接参照します。 C ++では、ポインタに0を割り当てると、それはNULLを指すポインタを意味します。 構文 Float *p = 0 //in
-
CまたはC++を使用してディレクトリ内のファイルのリストを取得するにはどうすればよいですか?
ディレクトリ内のファイルのリストを取得するために、次のC++サンプルコードを考えてみましょう。 アルゴリズム Begin Declare a poniter dr to the DIR type. Declare another pointer en of the dirent structure. Call opendir() function to open all file in present directory. Initialize dr pointer as dr = open
-
Cを使用したファイルへの構造の読み取り/書き込み
fwrite()およびfread()は、Cでファイルに書き込むために使用されます。 fwrite()構文 fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream) ここで ptr-書き込まれる要素の配列へのポインタ size-書き込まれる各要素のバイト単位のサイズ nmemb-要素の数。各要素のサイズはバイトです ストリーム–出力ストリームを指定するFILEオブジェクトへのポインタ fread()構文 fread(void *ptr, size_t size, size_t nmemb, FILE *stre
-
C /C++でのバイナリファイルの読み取りと書き込み
書き込み C ++でバイナリファイルを書き込むには、writeメソッドを使用します。これは、「put」ポインタの位置から開始して、指定されたストリームに指定されたバイト数を書き込むために使用されます。 putポインタが現在ファイルの最後にある場合、ファイルは拡張されます。このポインタがファイルの中央を指している場合、ファイル内の文字は新しいデータで上書きされます。 ファイルへの書き込み中にエラーが発生した場合、ストリームはエラー状態になります。 書き込みメソッドの構文 ostream& write(const char*, int); 読書 C ++でバイナリファイルを読み取るに
-
C /C++でのラインスプライシング
このセクションでは、CまたはC++の行間隔を確認します。時々、ダブルスラッシュ「//」を使用して1行のコメントを入れます。 1行のコメントは、基本的に次の行に移動すると終了します。しかし、1行のコメントの最後にスラッシュを戻すと、どのような影響がありますか? バックスラッシュを使用すると、次の嘘に続きます。したがって、コメント行の後、コメントの後に行がある場合、それも無視されます。例を見てみましょう。 例 #include <iostream> using namespace std; int main () { //This is a comment
-
C /C++での接尾辞++と接頭辞++の優先順位
ここでは、CまたはC++でのpostfix++とprefix++の優先順位を確認します。接頭辞++または--の優先順位は、間接参照演算子「*」よりも優先され、接尾辞++または-は、接頭辞++および間接参照演算子「*」の両方よりも優先されます。 ptrがポインタの場合、* ptr ++は*(ptr ++)を示し、++ * prtは++(* ptr)を示します。 例 #include<iostream> using namespace std; int main() { char arr[] = "Hello World";