Computer >> Máy Tính >  >> Lập trình >> lập trình C

Làm thế nào để sử dụng sử dụng mảng con trỏ (Jagged) trong C / C ++?

Chúng ta hãy xem xét ví dụ sau, ví dụ này sử dụng một mảng 3 số nguyên -

Trong C

Ví dụ

#include <stdio.h>
const int MAX = 3;
int main () {
   int var[] = {10, 100, 200};
   int i;
   for (i = 0; i < MAX; i++) {
      printf("Value of var[%d] = %d\n", i, var[i] );
   }
   return 0;
}

Đầu ra

Value of var[0] = 10
Value of var[1] = 100
Value of var[2] = 200

Trong C ++

Ví dụ

#include <iostream>
using namespace std;
const int MAX = 3;
int main () {
   int var[] = {10, 100, 200};
   int i;
   for (i = 0; i < MAX; i++) {
      cout<<"Value of var"<<i<<"="<<var[i]<<"\n";
   }
   return 0;
}

Đầu ra

Value of var0=10
Value of var1=100
Value of var2=200

Có thể xảy ra tình huống khi chúng ta muốn duy trì một mảng, mảng có thể lưu trữ các con trỏ tới int hoặc char hoặc bất kỳ kiểu dữ liệu nào khác có sẵn. Sau đây là khai báo một mảng con trỏ tới một số nguyên -

int * ptr [MAX]

Nó khai báo ptr dưới dạng một mảng MAX con trỏ số nguyên. Do đó, mỗi phần tử trong ptr, chứa một con trỏ đến một giá trị int. Ví dụ sau sử dụng ba số nguyên, được lưu trữ trong một mảng con trỏ, như sau -

Trong C

Ví dụ

#include <stdio.h>
const int MAX = 3;
int main () {
   int var[] = {10, 100, 200};
   int i, *ptr[MAX];
   for ( i = 0; i < MAX; i++) {
      ptr[i] = &var[i]; /* assign the address of integer. */
   }
   for ( i = 0; i < MAX; i++) {
      printf("Value of var[%d] = %d\n", i, *ptr[i] );
   }
   return 0;
}

Đầu ra

Value of var[0] = 10
Value of var[1] = 100
Value of var[2] = 200

Trong C ++

Ví dụ

#include <iostream>
using namespace std;
const int MAX=3;
int main () {
   int var[] = {10, 100, 200};
   int i, *ptr[MAX];
   for ( i = 0; i < MAX; i++) {
      ptr[i] = &var[i]; /* assign the address of integer. */
   }
   for ( i = 0; i < MAX; i++) {
      cout<<"Value of var" << i<<"="<<*ptr[i] <<"\n";
   }
}

Đầu ra

Value of var0=10
Value of var1=100
Value of var2=200

Bạn cũng có thể sử dụng một mảng con trỏ tới ký tự để lưu trữ danh sách các chuỗi như sau -

Trong C

Ví dụ

#include <stdio.h>
const int MAX = 4;
int main () {
   char *names[] = {
      "Zara Ali",
      "Hina Ali",
      "Nuha Ali",
      "Sara Ali"
   };
   int i = 0;
   for ( i = 0; i < MAX; i++) {
      printf("Value of names[%d] = %s\n", i, names[i] );
   }
   return 0;
}

Đầu ra

Value of names[0] = Zara Ali
Value of names[1] = Hina Ali
Value of names[2] = Nuha Ali
Value of names[3] = Sara Ali

Trong C ++

Ví dụ

#include <iostream>
using namespace std;
const int MAX=4;
int main () {
   char *names[] = {
      "Zara Ali",
      "Hina Ali",
      "Nuha Ali",
      "Sara Ali"
   };
   int i = 0;
   for ( i = 0; i < MAX; i++) {
      cout<<"Value of names"<< i<<"="<< names[i]<<"\n";
   }
   return 0;
}

Đầu ra

Value of names0=Zara Ali
Value of names1=Hina Ali
Value of names2=Nuha Ali
Value of names3=Sara Ali