C và C++ có gì khác nhau?

C và C++ có nhiều điểm tương đồng nhưng cũng có rất nhiều điểm khác nhau. Cùng tham khảo bài viết dưới đây nhé!

C và C++ đều là hai ngôn ngữ lập trình cấp thấp nổi tiếng. Dù hai ngôn ngữ nghe tương tự nhau nhưng chỉ hai dấu cộng phía sau, tính năng & cách sử dụng của chúng đã có sự khác biệt đáng kể.

C là ngôn ngữ lập trình theo thủ tục với hệ thống tĩnh, còn C++ là một phiên bản mở rộng của C, với sự hỗ trợ cho lập trình hướng đối tượng. Vì thế, học C là phù hợp và giúp cải thiện ngôn ngữ trong C++. Trong số những ngôn ngữ lập trình hàng đầu, C và C++ là hai lựa chọn được yêu thích nhất.

Điểm tương đồng giữa C và C++

  • Cả hai ngôn ngữ đều có cú pháp tương tự nhau.
  • Cấu trúc code của cả hai ngôn ngữ đều giống nhau.
  • Độ phức tạp của cả hai  ngôn ngữ tương tự nhau.
  • Chúng có cùng cú pháp cơ bản. Gần như tất cả toán tử và từ khóa của C đều nằm trong C++ và có chức năng tương tự.
  • C++ có ngữ nghĩa mở rộng hơn C, nhưng ngữ pháp cơ bản là giống nhau.
  • Mô hình bộ nhớ cơ bản của cả hai rất gần với hardware.
  • Cả hai ngôn ngữ đều có các khái niệm giống nhau về stack, heap, file-scope và biến tĩnh.

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

Tham số C C++
Mô hình lập trình Ngôn ngữ lập trình theo cấu trúc hoặc thủ tục. Ngôn ngữ lập trình theo cấu trúc và hướng đối tượng.
Lịch sử Do nhà khoa học Dennis Ritchie phát triển vào năm 1972 tại phòng thí nghiệm Bell. Do Bjarne Stroustup phát triển vào năm 1979.
Phương pháp Theo phương pháp từ trên xuống dưới. Theo phương pháp từ dưới lên trên.
Từ khóa Chứa 32 từ khóa Chứa 63 từ khóa
Kiểu dữ liệu Hỗ trợ các kiểu dữ liệu tích hợp. Hỗ trợ cả kiểu dữ liệu tích hợp và do người dùng xác định.
Phần mở rộng file .c .cpp
File header <stdio.h> <iostream.h>
Phân bổ và giải phóng bộ nhớ Dùng calloc() và malloc() cho phân bổ bộ nhớ động và free() cho bỏ phân bổ bộ nhớ. Dùng toán tử mới để phân bổ bộ nhớ và xóa toán tử để giải phóng bộ nhớ.
Chỉ định truy cập Không hỗ trợ chỉ định truy cập Hỗ trợ chỉ định truy cập
Bảo mật C không có bất kỳ tính năng bảo mật nào nên có thể bị người ngoài thao túng C ++ là một ngôn ngữ an toàn vì nó cung cấp các tính năng bảo mật như ẩn và đóng gói dữ liệu
Biến tham chiếu Không hỗ trợ Hỗ trợ
Overloading và Overriding hàm Không hỗ trợ Hỗ trợ
Xử lý ngoại lệ C không hỗ trợ xử lý ngoại lệ trực tiếp, nó sử dụng chức năng hỗ trợ xử lý ngoại lệ C++ hỗ trợ trực tiếp xử lý ngoại lệ với sự trợ giúp của khối try – catch
Phân chia chương trình C là ngôn ngữ thủ tục, vì vậy mã viết bằng C được chia thành các khối riêng biệt được gọi là hàm C++ là ngôn ngữ hướng đối tượng, do đó viết code và được chia thành lớp, đối tượng
Hàm nội tuyến Không hỗ trợ Hỗ trợ
Kiểu hướng Ngôn ngữ hướng hàm Ngôn ngữ hướng đối tượng
Khả năng tương thích Code được viết bằng C có thể chạy trên trình biên dịch C++ vì C là ngôn ngữ nền tảng Code viết bằng ngôn ngữ C++ có thể chạy trên trình biên dịch C vì ngôn ngữ C++ bao gồm khái niệm OOP
Dữ liệu và hàm Tách biệt Được đóng gói chung với nhau
Hàm input và output Các hàm scanf() và printf() được sử dụng để lấy đầu vào và đầu ra tương ứng Các hàm cin và cout được sử dụng để lấy đầu vào và đầu ra tương ứng
Lập trình ứng dụng Ngôn ngữ C phù hợp hơn để triển khai ở mức độ thấp như trình điều khiển mạng, trình soạn thảo văn bản, trình biên dịch chương trình, v.v. Ngôn ngữ C ++ phù hợp hơn để triển khai cấp cao như phát triển trò chơi, đồng hồ thông minh, hệ thống nhúng, v.v.
Namespace Để tránh xung đột và sắp xếp mã, cần có namespace nhưng C không hỗ trợ Hỗ trợ namespace
Được sử dụng bởi MySQL, Windows Kerne, Oracle Database, Telegram... Google Chrome, Torque 3-D game, Microsoft Office, ...

 

Ví dụ về C và C++

Cộng hai số nguyên

C

#include<stdio.h>
int main(){    
int x, y, sum=0;
printf("Enter the two integers x and y: ");
scanf("%d %d", &x, &y);
// tính tổng hai số nguyên
sum = x + y;      
printf("%d + %d = %d", x, y, sum);
return 0;
}

C++

#include<iostream>
using namespace std;
void main() {
int a, b, sum=0;
cout<<"Enter the value for two integers: ";
cin>>a>>b;
// tính tổng của hai số được lưu trong biến sum
sum = a + b;
// in tổng của hai số
cout<<a<< " + " <<b<< " = " <<sum;     
return 0;
}

Trên đây là điểm khác biệt cơ bản giữa hai ngôn ngữ C và C++. Hi vọng bài viết giúp bạn có lựa chọn chính xác về việc nên dùng C hay C++ để lập trình.

Nguồn: Quantrimang

Khoa Công nghệ thông tin


Tệp đính kèm