Define trong C là gì

823214 20 đã đăng:

Mọi người cho mình hỏi sự khác nhau giữa từ khóa define và từ khóa const trong C/C++ là như thế nào ạ?

lập trình tin học define constant
Bỏ theo dõi
  • Theo dõi bài viết qua tin nhắn
  • Theo dõi bài viết qua email
  • Bỏ theo dõi
823214
đã hỏi 4.0 năm trước bởi
823214 20
thêm bình luận...
Bảo 70 đã đăng:

Về mục đích sử dụng thì cả hai từ khóa này đều cùng chung chức năng đó là tạo một biến có giá trị không thể bị thay đổi

#include using namespace std; #define MAX 100 // hoặc //int const MAX = 100; int main[]{ MAX = 2; // Sai, giá trị của biến không thể // bị thay đổi khi được khởi tạo bằng // #define hoặc từ khóa const }

Nhưng chúng có hai sự khác nhau chính đó là:

  • Thứ nhất, #define được xem như là bộ xử lý trước, tức là giá trị giá trị của biến [macros] được định nghĩa bằng #define được thay thế bởi giá trị chúng ta đã khởi tạo, ví dụ ở trường hợp này với MAX = 100 trước khi trình biên dịch dùng nó. Điều này có nghĩa là giá trị 100 sẽ được sử dụng ngay trong chương trình mà không cần phải khởi tạo biến, cấp phát địa chỉ, ...v.v. Còn từ khóa const thường đi kèm với các từ khóa chỉ kiểu dữ liệu như int, float, ... cho nên nó được xem như là một biến và cần phải được khởi tạo, cấp phát địa chỉ cho biến, ... và được sử dụng như biến bình thường như ép kiểu,... .
  • Thứ hai, #define có thể được sử dụng để tạo một biểu thức thay vì một biến, trong khi đó từ khóa const không thể làm được việc này.

Bạn có thể xem đoạn chương trình dưới đây

#include using namespace std; #define TONG[x] [x]+[x] int main[]{ int a = TONG[2]; cout

Chủ Đề