Tin Tức

recent

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


-Kiểu tham chiếu (reference) của C++ thực chất được cài đặt bằng kỹ thuật con trỏ, nhưng cú pháp lập trình lại tương tự như biến thông thường.Dưới đây là hàm refMinAbs() cài đặt tương tự như 2 hàm indexMinAbs() và pointerMinAbs() ở bài trước và chỉ khác ở 2 chỗ: giá trị trả về và chỉ thị return.
float& refMinAbs(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];
}
- Trong hàm main() của chương trình chạy thử, việc gọi hàm với chỉ thị float& refMin = refMinAbs(B, n) nhằm để refMin tham chiếu đến phần tử tìm được. Lưu ý dấu & trong float& là thực sự cần thiết vì nếu ta thay bằng lời gọi hàm không có dấu & như là float refMin = refMinAbs(B, n) thì chương trình vẫn chạy nhưng biến refMin được gán bằng giá trị của phần tử tìm được chứ không tham chiếu(xem như đồng nhất) với phần tử tìm được. Trong hàm main() thì cảba địa chỉ &B[id], pMin, &refMin đều cùng 1 giá trị địa chỉ bộ nhớ.
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);
 float& refMin = refMinAbs(B, n);
 printf("Values: %f %f %f\n", B[id], *pMin, refMin);
 printf("Memory Adresses: 0x%x 0x%x 0x%x", &B[id], pMin, &refMin);

 getch();
 return 0;
}

Nguồn : Vương trí tài
Con trỏ - Bài 6 : Hàm trả về địa chỉ của biến bộ nhớ (Phần 2) Reviewed by myblog on 23:14: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.