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:
Không có nhận xét nào: