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

C / C ++ポインタパズル?


ポインタは、別の変数のアドレスを格納する変数です。ポインタのデータ型は、変数のデータ型と同じです。

このパズルでは、使用されているポインタのサイズを知る必要があります。パズルは、変数のサイズを尋ねることによって、ポインターの理解をチェックします。

intのサイズは4バイトですが、intポインタのサイズは8です。それでは、c++プログラミング言語で次の演習を行ってスキルをテストしてみましょう。

#include <iostream>
using namespace std;
int main() {
   int a = 6 ;
   int *p = &a;
   int arr[5][8][3];
   int *q = &arr[0][0][0];
   int ans;
   cout<<"the value of a is "<<a<<endl;
   cout<<"predict the size of a ";
   cin>> ans;
   if(ans == sizeof(p)) {
      cout<<"Hurry! your prediction is right";
   } else {
      cout<<"Your Guess is wrong ";
   }
   cout<<"Now try this "<<endl;
   cout<<"arr is a 3D array"<<endl;
   cout<<"predict the size of arr ";
   cin>> ans;
   if(ans == sizeof(q)) {
      cout<<"Hurry! your prediction is right";
   } else {
      cout<<"Your Guess is wrong ";
   }
   return 0;
}

出力

the value of a is 6
predict the size of a 8
Hurry! your prediction is right
Now try this
arr is a 3D array
predict the size of arr 4
Your guess is wrong

  1. C /C++ポインタとJavaリファレンス

    ポインタ C、C ++プログラミング言語では、ポインタは別の変数のアドレスを保持する変数です。 例 #include <iostream> using namespace std;   int main() {    //int variable    int i = 8;    //pointer variable    int * pI;    //assign the address of i to its pointer    pI = &

  2. C / C ++でのアレイの減衰とは何ですか?

    配列とポインタはC/C++でもまったく同じように機能します。しかし、いくつかの微妙な違いがあります。たとえば、sizeof演算子は2つでまったく異なる働きをします。ポインタ内の配列を変換する場合、 例 #include<iostream> int main() {    const int a[] = { 2, 3, 5, 7, 11 };    const int* p = a;    std::cout << ( sizeof(p) != sizeof(a) ); } 出力 これにより出力が得られます-