Khai báo Structure trong C và C++ có gì khác nhau ?

Cú pháp khai báo Structure trong C và C++ có một chút khác biệt.

Cú pháp trong C++:

  • Bắt đầu khai báo bằng từ khóa struct”
  • Tên của structure (struct_name) là optional (tức là không bắt buộc)
  • Thân của structure bao gồm một hoặc nhiều thuộc tính
  • Thuộc tính của structure có thể là con trỏ kiểu struct_name (còn gọi là self-referential pointer)
  • Thuộc tính của structure không thể là một struct có kiểu là struct_name
  • Để khai báo một biến của structure thì sử dụng struct_name giống như các kiểu dữ liệu khác
  • Có thể kết hợp khai báo structure với khai báo biến của structure đó. Khi đó, toàn bộ khai báo structure được coi là một kiểu dữ liệu, và tên của một hay nhiều biến của structure đó sẽ được viết đằng sau khai báo structure. Trong trường hợp này hoàn toàn có thể bỏ qua struct_name (tuy nhiên điều này là không nên)

Cú pháp trong C:

Ở đây sẽ có 2 lựa chọn:

  • Bỏ qua typedef and struct_name_t.

Trong trường hợp này, để khai báo một biến của structure thì cần có từ khóa “struct”  ở đằng trước →

  • Hoặc có thể dùng typedef để khai báo kiểu struct_name_tKhi đó có thể khai báo biển của structure như sau 

Trong cả 2 trường hợp trên, nếu muốn khai báo thuộc tính của structure là con trỏ trỏ đến structure đó thì bắt buộc phải khai báo như sau 

— Phạm Minh Tuấn (Shun) —

   

Thao khảo: www.cprogramming.com