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

Giải thích các khái niệm về Con trỏ và mảng trong ngôn ngữ C

Con trỏ và mảng

Các vị trí bộ nhớ liên tục được trình biên dịch cấp phát cho tất cả các phần tử của mảng.

Địa chỉ cơ sở là vị trí của phần tử đầu tiên trong mảng.

Ví dụ: int a [5] ={10, 20,30,40,50};

Năm yếu tố được lưu trữ như sau -

Giải thích các khái niệm về Con trỏ và mảng trong ngôn ngữ C

Nếu ‘p’ được khai báo là con trỏ số nguyên, thì mảng ‘a’ có thể được trỏ bởi phép gán sau -

p=a
or
p=&a[0];

Mỗi giá trị của ‘a’ được truy cập bằng cách sử dụng p ++ để di chuyển từ phần tử này sang phần tử khác. Khi một con trỏ được tăng lên, giá trị của nó được tăng lên theo kích thước của kiểu dữ liệu mà nó trỏ tới. Độ dài này được gọi là "hệ số tỷ lệ".

Mối quan hệ giữa con trỏ p và biến a được hiển thị bên dưới -

P   = &a[0] = 1000
P+1 = &a[1] = 1004
P+2 = &a[2] = 1008
P+3 = &a[3] = 1012
P+4 = &a[4] = 1016

Địa chỉ của một phần tử được tính bằng cách sử dụng chỉ số của nó và hệ số tỷ lệ của kiểu dữ liệu.

Ví dụ

Địa chỉ của [3] =địa chỉ cơ sở + (3 * hệ số tỷ lệ của int)

=1000 + (3 * 4)

=1000 + 12

=1012

*(p+3) gives the value of a[3]
a[i] = *(p+i)

Chương trình

#include<stdio.h>
main (){
   int a[5];
   int *p,i;
   clrscr ();
   printf (”Enter 5 lements”);
   for (i=0; i<5; i++)
      scanf (“%d”, &a[i]);
   p = &a[0];
   printf (“Elements of the array are”);
   for (i=0; i<5; i++)
      printf(“%d”, *(p+i));
   getch();
}

Đầu ra

Enter 5 elements : 10 20 30 40 50
Elements of the array are : 10 20 30 40 50