Cが配列パラメーターをポインターとして扱うのはなぜですか?
Cは、時間と効率が低いため、配列パラメーターをポインターとして扱います。ただし、配列の各要素のアドレスを引数として関数に渡すことができれば、より時間がかかります。したがって、最初の要素のベースアドレスを次のような関数に渡すことをお勧めします:
void fun(int a[]) { … } void fun(int *a) { //more efficient. ….. }
Cのサンプルコードは次のとおりです:
#include void display1(int a[]) //printing the array content { int i; printf("\nCurrent content of the array is: \n"); for(i = 0; i < 5; i++) printf(" %d",a[i]); } void display2(int *a) //printing the array content { int i; printf("\nCurrent content of the array is: \n"); for(i = 0; i < 5; i++) printf(" %d",*(a+i)); } int main() { int a[5] = {4, 2, 7, 9, 6}; //initialization of array elements display1(a); display2(a); return 0; }
出力
Current content of the array is: 4 2 7 9 6 Current content of the array is: 4 2 7 9 6
-
アレイが回文であるかどうかをチェックするCプログラム
任意のサイズnの配列arr[]が与えられた場合、私たちのタスクは、配列が回文であるかどうかを確認することです。回文は、MADAM、NAMANなどのように、同じように前後に読み取ることができるシーケンスです。 したがって、配列が回文であるかどうかを確認するために、-のように配列を前後にトラバースできます。 例 Input: arr[] = {1, 0, 0, 1} Output: Array is palindrome Input: arr[] = {1, 2, 3, 4, 5} Output: Array is not palindrome 以下で使用されるアプローチは次のとおりです
-
Cの配列内の範囲の積
配列、L、R、Pを入力として指定し、タスクは、モジュロの下の積を出力としてLとRの間の範囲を見つけ、それを表示することです。 図に示されているように、要素の配列と、2としての左の値であるLと2としての右の値であるRがあります。ここで、プログラムはそれらの間の範囲の積を見つける必要があります。 例 Input-: A[] = { 1, 2, 3, 4, 5, 6 } P = 29 L = 2 R = 6 Output-: 24 Input-: A[] = {1, 2, 3, 4, 5, 6}, L =