C语言编程时90%的小伙伴常犯的18种错误(C语言编程中90%新手易犯的18大常见错误)

原创
ithorizon 6个月前 (10-20) 阅读数 15 #后端开发

C语言编程中90%新手易犯的18大常见不正确

一、忘记包含头文件

在C语言编程中,包含相应的头文件是非常重要的。新手常常忘记包含所需的头文件,引起编译不正确。

#include // 用于输入输出

#include // 用于动态内存分配等

#include // 用于字符串操作

二、主函数书写不正确

主函数是程序的入口,其书写格式为 int main() { ... }。新手大概会写成其他形式,引起编译不正确。

int main() {

// 程序代码

return 0;

}

三、变量声明不正确

变量声明应遵循“类型 变量名;”的格式。新手大概会漏掉分号或变量类型,引起编译不正确。

int a; // 正确

int a // 不正确,缺少分号

四、忘记初始化变量

在C语言中,使用未初始化的变量大概会引起不确定的行为。新手常常忘记初始化变量。

int a; // 未初始化

printf("%d ", a); // 大概输出不确定的值

五、数组越界

新手在处理数组时,大概会访问数组的越界元素,引起程序崩溃。

int arr[10];

printf("%d ", arr[10]); // 越界访问,大概引起崩溃

六、指针使用不正确

指针是C语言的核心特性之一,但新手在使用指针时常常犯不正确。

int *p;

printf("%d ", *p); // 未初始化的指针,大概引起崩溃

七、忘记释放动态分配的内存

使用 malloccalloc 动态分配内存后,新手常常忘记使用 free 释放内存,引起内存泄漏。

int *p = malloc(10 * sizeof(int));

// 使用内存

free(p); // 释放内存

八、字符串操作不正确

字符串操作是C语言编程中常见的任务,但新手在使用字符串函数时常常犯不正确。

char str[10] = "Hello";

strcat(str, " World"); // 越界操作,大概引起崩溃

九、类型转换不正确

在C语言中,类型转换是非常重要的,但新手常常在类型转换时犯不正确。

float f = 3.14;

int i = (int)f; // 正确的类型转换

int j = f; // 不正确的类型转换,大概引起未定义行为

十、忘记检查函数返回值

许多C语言函数会返回值以描述胜利或失利,但新手常常忘记检查这些返回值。

FILE *fp = fopen("file.txt", "r");

if (fp == NULL) {

// 处理不正确

}

十一、未正确处理文件操作

文件操作是C语言编程中常见的任务,但新手常常在文件操作时犯不正确。

FILE *fp = fopen("file.txt", "r");

if (fp != NULL) {

// 读取文件

fclose(fp); // 关闭文件

}

十二、未正确处理输入输出

输入输出是C语言编程的基础,但新手常常在输入输出时犯不正确。

printf("%d ", a); // 未声明或未初始化的变量a

十三、未正确使用循环控制语句

循环控制语句是C语言编程的核心,但新手常常在使用循环时犯不正确。

for (int i = 0; i < 10; i++) {

// 循环体

}

十四、未正确使用分支控制语句

分支控制语句是C语言编程的基础,但新手常常在使用分支时犯不正确。

if (a > 0) {

// 条件构建时执行的代码

}

十五、未正确处理内存分配和释放

动态内存分配和释放是C语言编程中的重要部分,但新手常常在此过程中犯不正确。

int *p = malloc(10 * sizeof(int));

if (p != NULL) {

// 使用内存

free(p); // 释放内存

}

十六、未正确处理函数调用和参数传递

函数调用和参数传递是C语言编程的基础,但新手常常在此过程中犯不正确。

void printInt(int num) {

printf("%d ", num);

}

printInt(a); // 未声明或未初始化的变量a

十七、未正确处理结构体和联合体

结构体和联合体是C语言中的高级特性,但新手常常在处理它们时犯不正确。

typedef struct {

int x;

int y;

} Point;

Point p = {1, 2};

printf("%d, %d ", p.x, p.y);

十八、未正确处理位操作

位操作是C语言中的高级特性,但新手常常在处理位操作时犯不正确。

int a = 1;

a |= 2; // 将a的第二个位设置为1

printf("%d ", a);


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: 后端开发


热门