1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Nhập môn lập trình: Chương 4C - Nguyễn Sơn Hoàng Quốc

12 47 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Bài giảng Hàm và kỹ thuật tổ chức chương trình - Biến toàn cục, biến cục bộ cung cấp cho người học các kiến thức: Khái niệm tầm vực của biến, khái niệm biến cục bộ tĩnh, sử dụng biến cục bộ,... Mời các bạn cùng tham khảo.

Nhập mơn lập trình Trình bày: Nguyễn Sơn Hồng Quốc Email: nshquoc@fit.hcmus.edu.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt Khái niệm tầm vực biến • Là phạm vi hiệu biến khai báo chương trình • Biến cục (local variable) – Được khai báo bên hàm – Chỉ có tác dụng hàm – Được khởi tạo số biểu thức tương ứng với kiểu biến – Biến cục bị xóa khỏi nhớ kết thúc hàm CuuDuongThanCong.com https://fb.com/tailieudientucntt Khái niệm tầm vực biến • Biến toàn cục (global variable) – Được khai báo bên tất hàm (kể hàm main()) – Có tác dụng tồn chương trình(!) – Được khởi tạo lần số tương ứng với kiểu trước sử dụng bên hàm (tự động gán giá trị không khởi gán tường minh) – Chỉ giải phóng kết thúc chương trình CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ biến tồn cục, cục Biến tồn cục int x = 999; void f(); void main() { printf("%d\n", x); f(); } void f() { printf("%d\n", x); } Biến cục void f(); void main() { int x = 999; printf("%d\n", x); f(); } void f() { printf("%d\n", x); } CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ biến tồn cục, cục int x = 1, y = 2; void f() { int x = 3; printf("x = %d, y = %d\n", x, y); if (y > 0) { int z = 4; printf("%d\n", z); } printf("x = %d\n", x); printf("z = %d\n", z); // error } CuuDuongThanCong.com https://fb.com/tailieudientucntt Nói thêm biến tồn cục • Biến tồn cục (global variable) cách gọi khác biến (external variable) • Nói ra, tầm vực biến ngồi (hay biến toàn cục) toàn mã nguồn tập tin chứa khai báo biến • Các chương trình C có kích thước khơng lớn chứa tập tin mã nguồn nên tầm vực tồn chương trình • Biến ngồi khai báo tường minh từ khóa extern CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ khai báo biến Source1.cpp int x = 999; // external/global variable void f() { extern int x; printf("%d\n", x); } main.cpp 1.extern int x; 2.void main() 3.{ printf("%d\n", x); 5.} CuuDuongThanCong.com https://fb.com/tailieudientucntt Sử dụng biến cục • Hạn chế sử dụng biến ngồi/tồn cục điều phá vỡ tính độc lập đơn thể (modular independence), nguyên lý trung tâm lập tình cấu trúc • Độc lập đơn thể ý tưởng hàm hay đơn thể chương trình chứa tất mã nguồn liệu cần thiết để thực cơng việc • Đối với chương trình nhỏ việc sử dụng chung biến ngồi/tồn cục khơng quan trọng làm việc với chương trình lớn phức tạp q ràng buộc vào biến ngồi nảy sinh nhiều vấn đề rắc rối CuuDuongThanCong.com https://fb.com/tailieudientucntt Khái niệm biến cục tĩnh • Mỗi chương trình thực thi lời khai báo biến cục bộ, riêng biệt biến cục tạo • Nếu biến cục khai báo tĩnh (static) biến tạo lần lần chương trình thực thi lời khai báo • Khơng biến tồn cục, biến cục tĩnh khơng bị truy cập thay đổi hàm khác 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ biến cục tĩnh void f() { static int n = 0; // initialized once int x = 0; // initialized n times printf("n = %d, x = %d\n", n++, x++); } n = 0, x = n = 1, x = void main() { n = 2, x = int i; for (i = 0; i < 3; i++) 10 f(); 11.} 11 CuuDuongThanCong.com https://fb.com/tailieudientucntt Dữ liệu nhập, xuất, trung gian • Có loại liệu sau thực yêu cầu gọi hàm: – Dữ liệu nhập: liệu có sẵn, cần thiết để thực hàm, thường truyền dạng tham trị tham biến – Dữ liệu xuất: liệu hàm tính tốn được, thường trả lệnh return dạng tham biến – Dữ liệu trung gian: liệu hàm tạo q trình thực cơng việc, thường phục vụ cho việc tính tốn liệu xuất 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ loại liệu // returns f(x, y) = ax + by and reverses the signs of a, b if f < int Calculate(float &a, float &b, float x, float y) { int temp1, temp2, f; temp1 = a * x; temp2 = b * y; f = temp1 + temp2; if (f < 0) { Dữ liệu nhập? a = -a; Dữ liệu trung gian? Dữ liệu xuất? b = -b; 10 } 11 return f; 12 } 13 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... lập đơn thể (modular independence), nguyên lý trung tâm lập tình cấu trúc • Độc lập đơn thể ý tưởng hàm hay đơn thể chương trình chứa tất mã nguồn liệu cần thiết để thực cơng việc • Đối với chương. .. temp1 = a * x; temp2 = b * y; f = temp1 + temp2; if (f < 0) { Dữ liệu nhập? a = -a; Dữ liệu trung gian? Dữ liệu xuất? b = -b; 10 } 11 return f; 12 } 13 CuuDuongThanCong.com https://fb.com/tailieudientucntt... – Có tác dụng tồn chương trình(!) – Được khởi tạo lần số tương ứng với kiểu trước sử dụng bên hàm (tự động gán giá trị không khởi gán tường minh) – Chỉ giải phóng kết thúc chương trình CuuDuongThanCong.com

Ngày đăng: 11/01/2020, 20:05