Các lỗi cơ bản trong lập trình C

Ủng hộ AnonyHome Team
Chờ một chút: bạn thấy bài viết có ích chứ? Hãy chia sẻ nó với mọi người nhé!

Lỗi trong lập trình C là các vấn đề xảy ra trong chương trình, điều này làm cho chương trình của bạn trở nên bất thường và các nhà phát triển có kinh nghiệm cũng có thể mắc các lỗi này. Những lỗi này được phát hiện trong thời gian biên dịch hoặc thực thi. Vì vậy, các lỗi phải được loại bỏ khỏi chương trình để thực hiện thành công chương trình. Để các bạn có thể học lập trình C tốt hơn trong bài này chúng ta cùng tìm hiểu các lỗi dễ mắc phải để có thể lập trình tốt hơn nhé.

Các bạn có thể xem khóa học lập trình C của AnonyHome tại đây: Khóa học lập trình C

Các lỗi cơ bản trong lập trình C:

  • Syntax error
  • Run-time error
  • Linker error
  • Logical error
  • Semantic error

Lỗi trong lập trình C - Học lập trình C - Ngôn ngữ C

Syntax error

Syntax error (lỗi cú pháp): còn được gọi là lỗi biên dịch khi chúng xảy ra tại thời điểm biên dịch. Những lỗi này chủ yếu xảy ra do các lỗi trong khi gõ code hoặc khi chúng ta không tuân theo cú pháp của ngôn ngữ lập trình đã chỉ định. Những sai lầm này thường được thực hiện bởi người mới bắt đầu vì chưa quen với cú pháp của ngôn ngữ. Những lỗi này có thể dễ dàng sửa lỗi.

Ví dụ:

[c] Nếu chúng ta muốn khai báo biến số nguyên,
int a; // đúng
Int a; // sai
[/c]

Các lỗi cú pháp thường xảy ra là:

  • Thiếu dấu ngoặc đơn (}) trong khi code
  • Hiển thị giá trị của một biến mà chưa khai báo.
  • Thiếu dấu chấm phẩy (;) ở cuối câu lệnh.

Run-time error

Đôi khi các lỗi tồn tại trong thời gian thực hiện ngay cả sau khi biên dịch thành công được gọi là Run-time error. Khi chương trình đang chạy và không thể thực hiện thao tác là nguyên nhân chính gây ra Run-time error. Phép chia cho số 0 là ví dụ điển hình của Run-time error. Các lỗi này rất khó tìm, vì trình biên dịch không chỉ ra các lỗi này.

Ví dụ:

[c]#include<stdio.h>
int main()
{
int a=2;
int b=2/0;
printf(“The value of b is : %d”, b);
return 0;
}
[/c]

Output:

Lỗi trong lập trình C - Học lập trình C - Ngôn ngữ C

Linker error

Linker errors xảy ra khi khi tệp thực thi của chương trình không được tạo. Linker errors phổ biến nhất xảy ra là sử dụng Main() thay vì main().

Ví dụ:

[c]#include <stdio.h>
int Main()
{
int a=78;
printf(“The value of a is : %d”, a);
return 0;
}[/c]

Output

Linker error Lỗi trong lập trình C - Học lập trình C - Ngôn ngữ C

Logical error

Logical error là một lỗi dẫn đến đầu ra không mong muốn. Các lỗi này làm cho đầu ra không chính xác, nhưng chúng không có lỗi, được gọi là Logical error (lỗi logic). Những lỗi này chủ yếu được thực hiện bởi người mới bắt đầu và sự xuất hiện của những lỗi này chủ yếu phụ thuộc vào tư duy logic của nhà phát triển. Nếu là các lập trình viên chuyên nghiệp, thì sẽ có ít khả năng xảy ra các lỗi này.

Ví dụ:

[c]#include <stdio.h>
int main()
{
int sum=0; // Khởi tạo biến;
int k=1;
for(int i=1;i&amp;lt;=10;i++); // lỗi logoc khi chúng ta đặt dấu phảy sau vòng lặp;
{
sum=sum+k;
k++;
}
printf(“The value of sum is %d”, sum);
return 0;
}
[/c]

 

Output:

Lỗi logic

Đoạn mã trên thực hiện tính tổng 10 chữ số, nhưng tôi đã nhận được đầu ra sai khi đặt dấu chấm phẩy (;) sau vòng lặp for, vì vậy các câu lệnh bên trong của vòng lặp for sẽ không thực thi. Điều này tạo ra đầu ra sai.

Semantic error

Sau đây có thể là các trường hợp cho Semantic errors:

  • Sử dụng một biến không khởi tạo.
    int i;
    i = i + 2;
  • Kiểu dữ liệu không tương thích
    int b = “anonyhome”;
  • Lỗi trong biểu thức
    int a, b, c;
    a + b = c;
  • Vượt quá chỉ số mảng (hay gặp)
    int a [10];
    a [10] = 34;

Ví dụ:

[c]#include <stdio.h>
int main()
{
int a,b,c;
a=2;
b=3;
c=1;
a+b=c; // semantic error
return 0;
}
[/c]

Trong đoạn code trên, tôi sử dụng câu lệnh a + b = c , không đúng vì tôi không thể sử dụng hai toán hạng ở phía bên trái.

Output

semantic error

Xem thêm: Tài liệu học lập trình C/C++

Đừng quên theo dõi AnonyHome để cập nhật bài viết mới nhất nhé các bạn! Mọi ý kiến đóng góp vui lòng để lại trong phần bình luận cuối bài viết.

0 0 vote
Vui lòng đánh giá bài viết
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
XEM THÊM
1. Mô hình MVC là gì?…
0
Bạn thích bài viết chứ? Hãy để lại bình luận.x
()
x