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

sizeofを使用せずにC/C++で配列のサイズを検索する


このプログラムでは、sizeofを使用せずにC /C++で配列のサイズを検索します。

アルゴリズム

Begin
   Initialize the elements of the array.
   &a => This is the pointer to array which points at the same memory address as a.
   &a + 1 => It points at the address after the end of the array.
   *(a+1) => Dereferencing to *(&a + 1) gives the address after the end of the last element.
   *(a+1)-a => Subtract the pointer to the first element to get the length of the array.
   Print the size.
End.

サンプルコード

#include <iostream>
using namespace std;
int main() {
   int a[] = {6,7,5,3,1,4,2,10,9};
   int s = *(&a + 1) - a;
   cout << "Number of elements in array is "<< s;
}

出力

Number of elements in array is 9

  1. C ++で条件演算子を使用せずに、配列から最大の要素を検索します

    いくつかの要素を持つ配列Aがあるとします。配列Aで最大の要素を見つける必要がありますが、制約は、条件演算子を使用できないことです。したがって、A =[12、63、32、24、78、56、20]の場合、最大要素は78にな​​ります。 この問題を解決するために、ビット単位のAND演算を使用します。最初に、1つの追加要素INT_MAX(すべてのビットが1)を配列に挿入します。次に、配列から任意のペアの最大AND値を見つけようとします。この取得された最大値には、INT_MAXのAND値と元の配列の最大要素が含まれ、これが結果になります。 例 #include <iostream> #in

  2. C#でsizeofを使用せずに変数のサイズを見つける方法は?

    変数のサイズを取得するには、sizeofを使用します。 int x; x = sizeof(int); sizeofを使用せずに変数のサイズを取得するには、次のコードを試してください- // without using sizeof byte[] dataBytes = BitConverter.GetBytes(x); int d = dataBytes.Length; これが完全なコードです。 例 using System; class Demo {    public static void Main() {       int x;