Bài viết được sự cho phép của tác giả Trần Hữu Cương
Khi học lập trình, hẳn nhiều lúc bạn nhầm lẫn giữa ngôn ngữ lập trình C với C++. Nhiều lúc người ta viết gộp lại thành C/C++. Điều này sẽ khiến bạn hiểu nhầm rằng 2 ngôn ngữ này là một. Tuy nhiên thực tế không phải thế, bạn cần phân biệt rõ hai ngôn ngữ này bởi có những dự án phần mềm chỉ viết bằng ngôn ngữ C.
C và C++ là gì?
C và C++ là hai ngôn ngữ lập trình khác nhau.
C là ngôn ngữ lập trình hướng cấu trúc được ra đời trước C++.
C++ là ngôn ngữ lập trình thừa kế, mở rộng từ C. Do đó tất cả những gì đúng với C thì cũng đều đúng với C++. Đây cũng chính là lý do vì sau người ta hay gộp chung lại thành C/C++
>>> Xem thêm: Lộ trình học lập trình C cho người mới bắt đầu
Điểm giống nhau giữa C và C++
Chính vì C++ được mở rộng từ C nên điểm giống nhau của chúng sẽ là tất cả những gì có từ ngôn ngữ C:
- Có cùng cú pháp và cách viết code.
- Cấu trúc code giống nhau
- Bộ biên dịch code giống nhau (không phải 100%, tuy nhiên các bộ biên dịch/compiler mới đều hỗ trợ cả 2 ngôn ngữ)
- Mô hình bộ nhớ giống nhau và đều khá gần với phần cứng
- Sử dụng chung các khái niệm như stack, heap, file-scope, static variables …
Nhiều vị trí tuyển dụng C++ đãi ngộ tốt trên TopDev
C khác gì C++?
Điểm khác nhau giữa C và C++ chính là những điểm mà C++ được mở rộng thêm. (Các mở rộng của C++ phần lớn nhằm tới mục đích lập trình hướng đối tượng)
Dưới đây là chi tiết các điểm khác nhau giữa C với C++
C | C++ |
---|---|
Phát triển bởi Dennis Ritchie từ 1969 tới 1973. | Phát triển bởi Bjarne Stroustrup vào 1979. |
Không hỗ trợ lập trình hướng đối tượng. | Hỗ trợ lập trình hướng đối tượng như: đa hình, đóng gói, kế thừa, đối tượng |
Đuôi mở rộng file c là .c | Đuôi mở rộng file C++ là .cpp (dùng .c cũng được) |
Là cha của C++ | Là con của C. Code C có thể chạy bởi C++ nhưng code C++ không thể chạy bởi C. |
Có 32 từ khóa | Ngoài 32 từ khóa của C còn bổ sung thêm nhiều từ khóa mới |
C is a function driven language because C is a procedural programming language. | C++ is an object driven language because it is an object oriented programming. |
Không hỗ trợ xử lý exception trực tiếp | Hỗ trợ xử lý exception |
… | … |
Bài viết gốc được đăng tải tại stackjava
Có thể bạn quan tâm:
- Tất tần tật về C và C++
- Lập trình C++ cơ bản, giải thích không thể dễ hiểu hơn
- Hướng dẫn cấu hình compiler MinGW, Cygwin cho Dev C++
Xem thêm các việc làm Developer hấp dẫn tại TopDev