欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > C语言入门指南:从零开始的编程之旅

C语言入门指南:从零开始的编程之旅

2026/2/2 13:31:24 来源:https://blog.csdn.net/m0_73850645/article/details/147051169  浏览:    关键词:C语言入门指南:从零开始的编程之旅

作为一门经典的编程语言,C语言以其强大的功能和广泛的应用场景,成为了许多编程初学者的首选语言。本文将为你带来C语言的基础知识,帮助你迈出编程世界的第一步。

什么是C语言?

C语言是一门通用的计算机编程语言,广泛应用于底层开发。它的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量机器码,且无需任何运行环境支持就能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但它仍然保持着良好的跨平台特性。一个标准规格的C语言程序可以在多种电脑平台上编译运行,包括嵌入式处理器(单片机或MCU)和超级电脑等。
C语言是面向过程的编程语言,与C++、Java等面向对象的编程语言有所不同。常见的C语言编译器包括Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

第一个C语言程序

让我们从编写第一个C语言程序开始:

#include <stdio.h>int main()
{printf("hello world\n");printf("he he\n");return 0;
}

这段代码中:

  • #include <stdio.h> 是一个预处理指令,用于包含标准输入输出库
  • main函数是程序的入口点,每个C程序必须有且只有一个main函数
  • printf 用于在屏幕上显示文本
  • return 0 表示程序正常结束

数据类型

C语言提供了多种数据类型,用于表示不同种类的数据:

  • char - 字符数据类型(1字节)
  • short - 短整型(通常2字节)
  • int - 整型(通常4字节)
  • long - 长整型(至少4字节)
  • long long - 更长的整型(至少8字节)
  • float - 单精度浮点数(4字节)
  • double - 双精度浮点数(8字节)

我们可以使用sizeof运算符查看各种数据类型的大小:

printf("%d\n", sizeof(char));       // 1
printf("%d\n", sizeof(short));      // 2
printf("%d\n", sizeof(int));        // 4
printf("%d\n", sizeof(long));       // 4或8(取决于系统)
printf("%d\n", sizeof(long long));  // 8
printf("%d\n", sizeof(float));      // 4
printf("%d\n", sizeof(double));     // 8

变量与常量

变量

变量是用于存储数据的命名空间。在C语言中,变量使用前必须先声明其类型:

char ch = 'w';            // 字符变量
int weight = 120;         // 整型变量
float height = 175.5f;    // 浮点变量
变量命名规则
  • 变量名只能由字母(大小写)、数字和下划线组成 不能以数字开头
  • 变量名长度不能超过63个字符
  • 区分大小写
  • 不能使用关键字作为变量名
变量的类型
  • 局部变量:在函数内部定义,只在函数内部有效
  • 全局变量:在函数外部定义,在整个程序中有效

当局部变量和全局变量同名时,局部变量优先使用。

变量的作用域和生命周期

作用域是变量可用的范围:

  • 局部变量的作用域是其所在的局部范围
  • 全局变量的作用域是整个程序

生命周期是变量从创建到销毁的时间段:

  • 局部变量的生命周期:进入作用域开始,出作用域结束
  • 全局变量的生命周期:整个程序的运行期间

常量

常量是程序运行过程中不能被修改的值。C语言中的常量有以下几种:

  1. 字面常量:直接的值,如 3.14、100
  2. const修饰的常变量:
const float PI = 3.14f;  // PI不能被修改
  1. #define定义的标识符常量:
#define MAX 100
  1. 枚举常量
enum Sex {MALE,    // 0FEMALE,  // 1SECRET   // 2
};

字符串、转义字符和注释

字符串

字符串是由双引号引起来的一串字符:

"hello world\n"

字符串以\0(空字符)结尾,这个空字符是字符串的结束标志,不计入字符串长度。

char arr1[] = "bit";          // 包含隐式的\0
char arr2[] = {'b', 'i', 't'}; // 没有\0,可能导致错误
char arr3[] = {'b', 'i', 't', '\0'}; // 显式添加\0

转义字符

转义字符用于表示特殊字符,如:

  • \ - 反斜杠
  • ’ - 单引号
  • " - 双引号
  • \n - 换行符
  • \t - 水平制表符
  • \r - 回车符
  • \a - 警告字符(蜂鸣)

例如,如果要打印路径 c:\code\test.c,需要使用转义字符:

printf("c:\\code\\test.c\n");

注释

注释用于解释代码,但不会被编译器执行。C语言有两种注释风格:

  1. C风格注释:/* 注释内容 */(不能嵌套)
  2. C++风格注释:// 注释内容(可以注释一行或多行)
/* C风格注释,可以跨多行 */// C++风格注释,只能注释到行尾

选择语句

选择语句用于根据条件执行不同的代码:

#include <stdio.h>
int main()
{int coding = 0;printf("你会(选择1 or 0):>");scanf("%d", &coding);if(coding == 1){printf("11111\n");}else{printf("00000\n");}return 0;
}

循环语句

循环语句用于重复执行某段代码:

while循环

#include <stdio.h>
int main()
{printf("while\n");int line = 0;while(line <= 20000){line++;printf("%d\n",line);}if(line > 20000)printf("%d\n",line);return 0;
}

C语言还有其他循环结构如for循环和do-while循环,将在后续进阶中介绍。

函数

函数是执行特定任务的代码块,可以提高代码的复用性:

#include <stdio.h>// 函数声明和定义
int Add(int x, int y)
{int z = x + y;return z;
}int main()
{int num1 = 0;int num2 = 0;int sum = 0;printf("输入两个操作数:>");scanf("%d %d", &num1, &num2);sum = Add(num1, num2);printf("sum = %d\n", sum);return 0;
}

数组

数组是相同类型元素的集合:

int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 定义一个包含10个整数的数组

数组元素通过下标访问,下标从0开始:

#include <stdio.h>
int main()
{int i = 0;int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};for(i = 0; i < 10; i++){printf("%d ", arr[i]);}printf("\n");return 0;
}

操作符

C语言提供了丰富的操作符:

  1. 算术操作符:+, -, *, /, %
  2. 移位操作符:>>, <<
  3. 位操作符:&, |, ^, ~
  4. 赋值操作符:=, +=, -=, *=, /=, &=, |=, ^=, >>=, <<=
  5. 单目操作符:!, -, +, &, sizeof, ~, --, ++, *, (类型)
  6. 关系操作符:>, >=, <, <=, !=, ==
  7. 逻辑操作符:&&, ||
  8. 条件操作符:exp1 ? exp2 : exp3
  9. 逗号表达式:exp1, exp2, exp3, …
  10. 下标、函数调用和结构成员操作符:[], (), ., ->

常见关键字

C语言提供了多种关键字,如:auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while。

typedef关键字

typedef unsigned int uint_32;  // 为unsigned int创建别名uint_32int main()
{unsigned int num1 = 0;uint_32 num2 = 0;  // num1和num2类型相同return 0;
}

static关键字

static用于修饰变量和函数:

  1. 修饰局部变量:
    延长局部变量的生命周期,使其在函数调用结束后仍然存在
void test()
{static int i = 0;  // 静态局部变量i++;printf("%d ", i);
}
  1. 修饰全局变量:
    限制全局变量的作用域,使其只能在当前源文件中使用
  2. 修饰函数:
    限制函数的作用域,使其只能在当前源文件中使用

define定义常量和宏

#define可以用来定义常量和宏

// 定义常量
#define MAX 1000// 定义宏
#define ADD(x, y) ((x)+(y))int main()
{int sum = ADD(2, 3);  // 展开为 ((2)+(3))printf("sum = %d\n", sum);sum = 10 * ADD(2, 3);  // 展开为 10 * ((2)+(3))printf("sum = %d\n", sum);return 0;
}

指针

内存基础

内存被划分为一个个字节大小的单元,每个内存单元都有一个地址。我们可以使用取地址操作符&获取变量的地址:

int num = 10;
printf("%p\n", &num);  // 打印num的地址

指针变量

指针是用于存储地址的变量:

int num = 10;
int *p = &num;  // p是指向num的指针
*p = 20;        // 通过指针修改num的值
printf("%d\n", num);  // 输出20

指针的大小

在32位系统上,指针大小为4字节;在64位系统上,指针大小为8字节:

printf("%d\n", sizeof(char *));    // 4 (32位系统) 或 8 (64位系统)
printf("%d\n", sizeof(int *));     // 4 (32位系统) 或 8 (64位系统)
printf("%d\n", sizeof(double *));  // 4 (32位系统) 或 8 (64位系统)

结构体

结构体用于组合不同类型的数据:

// 定义学生结构体
struct Stu
{char name[20];  // 名字int age;        // 年龄char sex[5];    // 性别char id[15];    // 学号
};int main()
{// 初始化结构体struct Stu s = {"张三", 20, "男", "20180101"};// 使用.访问结构体成员printf("name = %s age = %d sex = %s id = %s\n", s.name, s.age, s.sex, s.id);// 使用->通过指针访问结构体成员struct Stu *ps = &s;printf("name = %s age = %d sex = %s id = %s\n", ps->name, ps->age, ps->sex, ps->id);return 0;
}

总结

本文介绍了C语言的基础知识,包括数据类型、变量与常量、字符串、操作符、控制语句、函数、数组、指针和结构体等内容。这些知识点为初学者提供了入门C语言的基础。随着学习的深入,你将能够编写更复杂、更实用的C程序。
记住,编程需要大量的实践。不断练习编写代码,遇到问题时查阅资料,这样才能真正掌握C语言编程。祝你学习顺利!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词