Sự khác biệt bạn chưa biết khi học lập trình C, C++

Khóa học lập trình C, khóa học lập trình C++ từ cơ bản đến nâng cao tại Stanford sẽ giúp bạn tiếp cận dễ dàng với ngôn ngữ lập trình C/C++.

Khi vừa chập chững vào con đường lập trình, ta được học lập trình C. Rồi hướng đối tượng với C++, tiếp đó là C#, Java…Chắc chắn sẽ có nhiều người thắc mắc không biết giữa C và C++ khác nhau ở những điểm nào? Bài viết dưới đây, sẽ  giúp các bạn biết được sự khác biệt trong ngôn ngữ C, C++.

1. Sự khác biệt giữa C và C++

Ngôn ngữ C++ được phát triển từ ngôn ngữ C, nên nó được mở rộng nhiều tính năng nhằm cung cấp cho lập trình viên nhiều lựa chọn hơn nhằm đơn giản hóa lập trình ở mức cao hơn, tăng cường tính an toàn và cung cấp một cách tiếp cận tốt hơn đối với những chương trình có quy mô lớn.

Ngôn ngữ C là ngôn ngữ lập trình thủ tục, nó chỉ hỗ trợ các con trỏ, structure và không có biến tham chiếu. C sử dụng các hàm printf và scanf để nhập xuất, hàm inline không được hỗ trợ mà thay vào đó có thể sử dụng khai báo #define. Ngôn ngữ C không thể khai báo hàm trong các structure, nó sử dụng phương pháp tiếp cận từ trên xuống (top-down).

Học lập trình C tại Stanford

C++ hỗ trợ lập trình thủ tục, là một dạng ngôn ngữ đa mẫu hình tự do có kiểu tĩnh  dữ liệu trừu trượng, lập trình hướng đối tượng, lập trình đa hình. Ngôn ngữ C++ hỗ trợ các biến tham chiếu và con trỏ, lớp, đối tượng, sử dụng các hàm cin>> và cout<< để nhập xuất. C++ có thể khai báo hàm trong các structure, hỗ trợ các hàm inline, sử dụng phương pháp tiếp cận từ dưới lên (bottom-up).

Vì ngôn ngữ C/C++ là độc lập nên không phải mọi chương trình trong C đều hợp lệ trong C++. Sự khác nhau này tạo ra khó khăn để viết các thư viện và chương trình sử dụng cả 2 ngôn ngữ này, nó sẽ gây nhầm lẫn cho những người học lập trình C/C++.

2. Sự khác biệt giữa ‘\n’ endl trong C++

Ta có thể sử dụng std::endl hoặc ‘\n’  trong C++ để kết thúc một dòng sang dòng mới nhưng hoạt động của từng cách là khác nhau:

 ‘\n’ không xóa bộ đệm đầu ra mà gửi một ký tự xuống dòng

std::endl  xóa bộ nhớ đệm đầu ra (output buffer) và gửi một ký tự xuống dòng ‘\n’

3. Sự khác biệt giữa cout<< và printf()

- cout<< là một đối tượng thuộc lớp. printf là một hàm có một số tham biến, tham biến đầu tiên là chuỗi định dạng giải thích việc xử lý các đối số tiếp theo.

Học lập trình C chuyên nghiệp

4. Sự khác biệt giữa 0, NULL và nul

-   0 là hằng số nguyên.

-   NULL là một macro được định nghĩa trong các header chuẩn.

-   nul là tên của hằng ký tự.

Tất cả những ký hiệu trên không thể hoán đổi cho nhau.

-   Trong C/C++ nul không được định nghĩa nên bạn không nên sử dụng nó, trừ khi bạn định nghĩa nó một cách thích hợp giống như: # define nul ''

-   0 đại diện chung cho kiểu giá trị ‘không’, có thể được sử dụng ở bất cứ đâu và trình biên dịch sẽ sắp xếp mọi thứ.

-    NULL, chỉ có thể được định nghĩa như ((void *)0), được sử dụng cho các con trỏ đây là nguyên nhân gây ra các vấn đề với con trỏ.

Hy vọng những chia sẻ trên sẽ giúp ích nhiều cho các bạn trong quá trình học lập trình C/C++

Bạn có thể tham khảo thêm khóa học lập trình C tại đây: stanford.com.vn

 

Tags: học lập trình, học lập trình c