Sự khác biệt cơ bản giữa hai ngôn ngữ lập trình C và C++


Mình tin chắc một điều là đối với dân lập trình thì không ai là không biết đến C và C++ cả, có đúng không ạ 🙂

Vậy bạn có biết sự khác nhau lớn nhất giữa C và C++ là gì không? Thực sự là trước đây khi mới được học thì giáo viên không phân biệt rõ ràng điều này giúp mình, nên lúc đó mình rất mơ hồ về 2 ngôn ngữ lập trình này.

Vậy nên, nếu như bạn cũng đang có cùng thắc mắc như trên thì hãy cùng mình đi tìm đáp án ngay trong bài viết này nhé !

so-sanh-c-va-c-cong-cong (1)
Cú pháp có vẻ trông giống nhau nhưng đừng đánh đồng hai ngôn ngữ này

Đọc thêm:

#1. Thông tin cơ bản về C và C++

C được phát triển bởi Dennis Ritchie từ 1969 tới 1973. C++ được phát triển bởi Bjarne Stroustrup vào 1979 => C++ được kế thừa từ C

C là ngôn ngữ thủ tục (Procedural Language), bởi nó tuân theo quy trình từng bước bao gồm các hàm. Hay có thể nói, C là ngôn ngữ cấp thấp (Low-Level Language) nên sẽ có độ phức tạp nhất định khi học so với các ngôn ngữ mới hiện nay (ví dụ như C# hoặc Python…)

Đối với khoa học máy tính, ngôn ngữ lập trình bậc thấp là một ngôn ngữ lập trình có liên quan chặt chẽ đến phần cứng máy tính.

Các bạn lưu ý, từ “thấp” ở đây bạn đừng hiểu là ngôn ngữ lập trình này kém hơn so với các ngôn ngữ lập trình bậc cao nhé. Mà hiểu đúng phải là các lệnh của nó rất gần ngôn ngữ máy.

C++ là ngôn ngữ lập trình hướng đối tượng, có nghĩa là C++ tập trung vào tính kế thừa và nó có khả năng sử dụng lại mã code, có khả năng đóng gói và tạo ra các đối tượng.

Tuy có nhiều điểm tương đồng nhưng C và C++ là 2 ngôn ngữ lập trình khác nhau nhé các bạn.


#2. Điểm giống nhau giữa ngôn ngữ C và C++

Nói về sự giống nhau giữa hai ngôn ngữ lập trình này thì chắc hẳn các bạn sẽ nghĩ ngay là cú pháp đúng không !

C++ là ngôn ngữ lập trình thừa kế, mở rộng từ C, đây cũng chính là lý do vì sao người ta hay gộp chung chúng lại thành C/C++, ngoài ra chúng ta còn có rất nhiều điểm chung giữa hai ngôn ngữ này, tiêu biểu phải kể  đến như:

  1. Cả 2 đều là ngôn ngữ lập trình cấp thấp.
  2. Có cấu trúc code giống nhau. Ngoài ra thì cú pháp và cách viết code cũng giống nhau.
  3. Việc biên dịch của cả hai ngôn ngữ này là tương tự nhau.
  4. Gần như tất cả các toán tử và từ khóa của C cũng có trong C ++.
  5. C và C++ đều hỗ trợ quản lý bộ nhớ một cách thủ công. Có nghĩa là chúng không có khả năng thu gom “rác” để giải phóng bộ nhớ khỏi các đối tượng không sử dụng.
  6. Các khái niệm giống nhau về vùng nhớ stack, heap, tệp và biến tĩnh….

so-sanh-c-va-c-cong-cong (1)

#3. Sự khác nhau giữa C và C++

Còn dưới đây là một số sự khác biệt tiêu biểu giữa hai ngôn ngữ lập trình C và C++ mà các bạn nên nắm được:

  1. C là ngôn ngữ hướng thủ tục (hay còn gọi là ngôn ngữ lập trình cấu trúc), còn C++ là ngôn ngữ lập trình hướng đối tượng (C++ còn được gọi là ngôn ngữ lai vì hỗ trợ khá nhiều mô hình lập trình).
  2. Vì không phải là ngôn ngữ lập trình hướng đối tượng như C++ nên C không có các tính chất như tính đa hình, tính đóng gói và kế thừa, và khả năng bảo mật của C++ chắc chắn cao hơn C.
  3. C không hỗ trợ nạp chồng hàm và nạp chồng toán tử, cũng không có tính năng không gian tên và chức năng biến tham chiếu. Còn C ++ hỗ trợ cả nạp chồng hàm và toán tử, ngoài ra nó cũng có tính năng không gian tên và chức năng biến tham chiếu….
  4. C thi có 32 từ khóa, còn C++ có nhiều hơn 32 từ khóa.
  5. C++ hỗ trợ ẩn thông tin còn C thì không (điều này liên quan mật thiết đến đóng gói).
  6. C++ có khả năng xử lý ngoại lệ tốt (khối Thử (Try) và Bắt (Catch)) => điều này giúp cho việc xử lý lỗi, tìm lỗi dễ dàng hơn so với C rất nhiều.
  7. Đuôi mở rộng của C là *.c, còn đuôi mở rộng của C++ là *.c*.cpp
  8. C++ có thể chạy được code của C, nhưng C thì không thể chạy được code của C++

#4. Lời kết

Đó là sự khác biệt cơ bản giữa hai ngôn ngữ lập trình C và C++ !

Ở đây mình đã không so sánh thật sự chi tiết về những khía cạnh của cả hai ngôn ngữ như tốc độ (về lí thuyết thì C nhanh hơn C++, nhưng trong một số trường hợp thì việc áp dụng C++ sẽ cho ra kết quả tốt hơn) như: khả năng tương thích với các ngôn ngữ lập trình khác, tính bảo mật dữ liệu, tính đóng gói và ẩn thông tin, biến,…

Nhưng công bằng mà nói thì đối với người mới, ngôn ngữ C có thể sẽ đơn giản và sẽ hữu ích hơn trong việc hiểu các khái niệm chính của lập trình cấp thấp.

Hi vọng là bài viết này sẽ hữu ích với bạn. Hẹn gặp lại các bạn trong các bài viết sau nhé !


CTV: Dương Quang Nhất – Blogchiasekienthuc.com

Bài viết đạt: 5/5 sao - (Có 2 lượt đánh giá)
Note: Bài viết này hữu ích với bạn chứ? Đừng quên đánh giá bài viết, like và chia sẻ cho bạn bè và người thân của bạn nhé !

Administrator: Kiên Nguyễn Blog

Có một câu nói của người Nhật mà mình rất thích đó là " Người khác làm được thì mình cũng làm được ". Chính vì thế mà hãy theo đuổi đam mê, thành công sẽ theo đuổi bạn ! Nếu như bạn đang gặp khó khăn và cần sự trợ giúp thì hãy comment phía bên dưới mỗi bài viết để nhận được sự hỗ trợ từ cộng đồng Blog Chia Sẻ Kiến Thức nhé.

Một vài lưu ý trước khi comment :

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Tất cả các comment của các bạn sẽ được giải đáp trong vòng 48h (thường vào buổi tối)!
Không được sử dụng từ khóa trong ô 'Name', bạn hãy dùng tên thật hoặc Nickname của bạn !
Không dẫn link sang trang web/blog khác. Xem quy định comment tại đây. Thank All!

Leave a Reply

Your email address will not be published. Required fields are marked *