Tin Tức

recent

Con trỏ - Bài 5 : Hàm trả về địa chỉ của biến bộ nhớ (Phần 1)



- 2 cách cài đặt hàm tìm phần tử có giá trị tuyệt đối nhỏ nhất trong mảng 1 chiều gồm n số thực kiểu float
int indexMinAbs(float a[], int n)
{
 int i = 1, idx = 0;
 while(i < n)
 {
  if(fabs(a[i]) < fabs(a[idx]))
  {
   idx = i;
  }
  i++;
 }
 return idx;
}

float *pointerMinAbs(float a[], int n)
{
 int i = 1, idx = 0;
 while(i < n)
 {
  if(fabs(a[i]) < fabs(a[idx]))
  {
   idx = i;
  }
  i++;
 }
 return &a[idx];
}
- Địa chỉ của phần tử tìm được là &a[idx] được trả về thay vì là chỉ số của mảng idx
int main()
{
 float B[] = {-9, 12.7F, 2.3F, 11, -10, -3.6F};
 int n = sizeof(B)/sizeof(B[0]);
 int id = indexMinAbs(B, n);
 float* pMin = pointerMinAbs(B, n);
 printf("Values: %f %f\n", B[id], *pMin);
 printf("Memory Adresses: 0x%x 0x%x", &B[id], pMin);

 getch();
 return 0;
}
- Chương trình chính minh họa cho việc gọi thử 2 hàm indexMinAbs() và pointerMinAbs(). Khi chạy chương trình ta sẽ thấy B[id] và *pMin in tra cùng giá trị, hơn nữa các địa chỉ bộ nhớ &B[id] và pMin cũng in ra cùng giá trị.

Nguồn : Vương trí tài
Con trỏ - Bài 5 : Hàm trả về địa chỉ của biến bộ nhớ (Phần 1) Reviewed by myblog on 23:12:00 Rating: 5

Không có nhận xét nào:

Bản Quyền Thuộc: Blogger JT © 2016. All Rights Reserved
Phát triển bởi JT

Góp Ý Cho JT Blog

Tên

Email *

Thông báo *

Được tạo bởi Blogger.