C /C++でのポインタのアプリケーション
配列要素にアクセスするには
ポインタを使用して配列要素にアクセスできます。
Cの場合
例
#include <stdio.h> int main() { int a[] = { 60, 70, 20, 40 }; printf("%d\n", *(a + 1)); return 0; }
出力
70
C++の場合
例
#include <iostream> using namespace std; int main() { int a[] = { 60, 70, 20, 40 }; cout<<*(a + 1); return 0; }
出力
70
動的メモリ割り当て
メモリを動的に割り当てるには、ポインタを使用します。
Cの場合
例
#include <stdio.h> #include <stdlib.h> int main() { int i, *ptr; ptr = (int*) malloc(3 * sizeof(int)); if(ptr == NULL) { printf("Error! memory not allocated."); exit(0); } *(ptr+0)=1; *(ptr+1)=2; *(ptr+2)=3; printf("Elements are:"); for(i = 0; i < 3; i++) { printf("%d ", *(ptr + i)); } free(ptr); return 0; }
出力
Elements are:1 2 3
C++の場合
例
#include <iostream> #include <stdlib.h> using namespace std; int main() { int i, *ptr; ptr = (int*) malloc(3 * sizeof(int)); if(ptr == NULL) { cout<<"Error! memory not allocated."; exit(0); } *(ptr+0)=1; *(ptr+1)=2; *(ptr+2)=3; cout<<"Elements are:"; for(i = 0; i < 3; i++) { cout<< *(ptr + i); } free(ptr); return 0; }
出力
Elements are:1 2 3
参照として関数に引数を渡す
ポインタを使用して、関数内の参照によって引数を渡し、効率を上げることができます。
Cの場合
例
#include <stdio.h> void swap(int* a, int* b) { int t= *a; *a= *b; *b = t; } int main() { int m = 7, n= 6; swap(&m, &n); printf("%d %d\n", m, n); return 0; }
出力
6 7
C++の場合
例
#include <iostream> using namespace std; void swap(int* a, int* b) { int t= *a; *a= *b; *b = t; } int main() { int m = 7, n= 6; swap(&m, &n); cout<< m<<n; return 0; }
出力
67
リンクリストやツリーなどのデータ構造を実装するために、ポインタも使用できます。
-
C / C ++文字列がintであるかどうかを確認するにはどうすればよいですか?
文字列がintであるかどうかを確認する方法はいくつかあり、そのうちの1つは、isdigit()を使用して文字列を確認する方法です。 これは、文字列がC++言語でintであるかどうかを確認する例です。 例 #include<iostream> #include<string.h> using namespace std; int main() { char str[] = "3257fg"; for (int i = 0; i < strlen(str); i++) { &n
-
C /C++の三項演算子
作用するために3つのオペランドを必要とする演算子は、三項演算子として知られています。 「?」で表すことができます。 :」。条件演算子とも呼ばれます。オペレーターはパフォーマンスを向上させ、コード行を減らします。 これがC言語の三項演算子の構文です Expression1 ? Expression2 : Expression3 これがC言語の三項演算子の例です 例 #include <stdio.h> int main() { int a = -1; double b = 26.4231; int c