讲师中心 微信公众号
AI工具推荐 视频效率加速

C语言从0开始

风雪姑娘_1220

风雪姑娘_1220

发布时间:2025-01-21 11:52:14

|

658人浏览过

|

来源于php中文网

原创

c语言从0开始

C语言学习起步可能略显困难,但掌握正确方法后,您将快速掌握基础并逐步精通。本指南将引导您循序渐进地学习C语言核心概念,从基础知识到高级主题。

目录

  1. C语言基础与数据类型
  2. 用户输入
  3. 条件表达式简写
  4. switch语句
  5. C语言数组
  6. 嵌套循环
  7. C语言函数
  8. 结构体
  9. 指针

C语言基础与数据类型

C程序遵循标准结构,并使用多种数据类型定义变量。基本程序结构如下:

<code class="c">#include <stdio.h>

int main() {
    printf("hello, world!");
    return 0;
}</code>

核心概念:

  • 数据类型:
    • int:整数(例如 int x = 10;)。
    • float 和 double:单精度和双精度浮点数(例如,float pi = 3.14;)。
    • char:单个字符或ASCII码(例如,char letter = 'a';)。
    • bool:布尔值(true 或 false,需包含 <stdbool.h> 头文件)。
<code class="c">// 数据类型示例:
int a = 40; // 整数 (4字节)
short int b = 32767; // 短整型 (2字节,范围:-32768到32767)
unsigned int c = 4294967295; // 无符号整数 (4字节,范围:0到4294967295)
float d = 9.81; // 单精度浮点数 (4字节,精度6-7位,格式:%f)
double e = 3.141592653589793; // 双精度浮点数 (8字节,精度15-16位,格式:%lf)
bool f = true; // 布尔值 (1字节,true/false,格式:%d,其中1=true,0=false)
char g = 'e'; // 字符 (1字节,可用于字符或数字)
char h = 100; // 字符 (1字节,格式:%d表示数字,%c表示ASCII码,范围:-128到127)
char name[] = "example"; // 字符串

// 变量声明和初始化
int age; // 声明
age = 5; // 初始化
char language = 'c'; // 声明和初始化

// 显示变量
printf("你%d岁了", age); // 整数
printf("你好 %s", name); // 字符串
printf("你现在正在学习 %c", language); // 字符

// 格式说明符:%d -> int, %s -> string, %c -> char, %f -> float, %.(numberofdecimals)f -> 带指定小数位的浮点数</code>
  • 运算符:
<code class="c">/*
+ = 加法
- = 减法
* = 乘法
/ = 除法
% = 取模
++ = 自增1
-- = 自减1
*/

// 结果需要存储在与结果类型匹配的变量中

// 数据类型转换:
int x = 5;
int y = 2;

float z = 5/2; // 错误结果,因为x和y是整数

float z = 5 / (float)2; // 正确方法

// 单变量自增:
int x = 4;

x += 2; // x = 6
x -= 2; // x = 4
x *= 2; // x = 8
x /= 2; // x = 4</code>

用户输入

在VS Code中,需要从“输出”切换到“终端”窗口运行程序,因为终端接收用户输入。

<code class="c">int age;
char name[25];

// 用户输入整数:
printf("你几岁了?\n"); // 显示提示信息
scanf("%d", &age); // 指定数据类型和变量名
printf("你%d岁了", age);

// 用户输入字符串(字符数组):
printf("你的名字是?");
scanf("%s", name);
printf("你好 %s,你好吗?", name);

/*
scanf() 不读取空格,如果需要输入姓名和姓氏,可以使用fgets函数:
结构:
fgets(变量名, 大小, stdin)
*/

fgets(name, 25, stdin); // fgets 也包含结尾的'\n'</code>

C语言区分大小写 如果需要大写值,可以修改用户输入以获得正确的值。例如:

<code class="c">#include <ctype.h>

// 我们要求用户输入大写F或大写C
char unit;

printf("温度是摄氏度(c)还是华氏度(f)?");
scanf(" %c", &unit); // 注意%c前的空格,用于去除前导空格

// 修改用户输入:
unit = toupper(unit);

// 现在,即使用户输入小写c或f,我们也保存大写值到unit

if(unit == 'C'){
    printf("温度目前是摄氏度。");
}
else if (unit == 'F'){
    printf("温度目前是华氏度。");
}
else{
    printf("%c 不是正确的值", unit);
}</code>

条件表达式简写

C语言使用三元运算符简化if-else条件语句:

立即学习“C语言免费学习笔记(深入)”;

<code class="c">int max = (a > b) ? a : b;</code>

等价于:

<code class="c">if (a > b) {
    max = a;
} else {
    max = b;
}</code>

这是一种简洁高效的编写简单条件逻辑的方法。


switch语句

switch语句允许处理变量的多个可能值:

<code class="c">char grade = 'a'; // 声明变量'grade'并初始化为'a'

switch (grade) { // 开始switch语句检查'grade'的值
    case 'a': // 如果'grade'是'a'
        printf("优秀!\n"); // 打印"优秀!"
        break; // 退出switch语句
    case 'b': // 如果'grade'是'b'
        printf("良好!\n"); // 打印"良好!"
        break; // 退出switch语句
    default: // 如果'grade'不是'a'或'b'
        printf("下次加油。\n"); // 打印"下次加油。"
}</code>

始终包含default情况处理意外值。


C语言数组

数组是内存中按顺序存储的相同类型变量的集合。例如:

<code class="c">int numbers[5] = {10, 20, 30, 40, 50};</code>

核心概念:

  • 访问元素: 使用数组索引,从0开始:
<code class="c">printf("%d", numbers[0]); // 打印10</code>
  • 二维数组: 类似矩阵或网格:
<code class="c">int matrix[2][3] = { // 声明一个2行3列的二维数组'matrix'
    {1, 2, 3}, // 初始化第一行
    {4, 5, 6}  // 初始化第二行
};</code>
  • 字符串数组: 数组也可以存储字符串:
<code class="c">// 声明一个字符串数组'cars',每个字符串最大长度为10个字符
char cars[][10] = {"bmw", "tesla", "toyota"};</code>

数组广泛用于处理数据列表、网格或表格。

Switch Modes
Switch Modes

动态切换AI模型以优化成本与性能。当用户发出“eco mode”、“balanced mode”、“smart mode”或“max mode”等模式指令,或使用“/modes status”查询状态及“/modes setup”配置模式时触发。

下载

嵌套循环

嵌套循环是指一个循环包含另一个循环,通常用于处理网格或重复模式:

<code class="c">for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 10; j++) {
        printf("*");
    }
    printf("\n");
}</code>

这非常适合处理多维数组或创建复杂的输出。


C语言函数

函数允许代码复用。例如:

<code class="c">void greet() {
    printf("hello, world!\n");
    printf("欢迎学习C语言编程。\n");
    printf("让我们开始编码吧!\n");
}

int main() {
    greet();
    return 0;
}</code>

函数可以接受参数使其更灵活:

<code class="c">void greet(char name[]) {
    printf("你好,%s!\n", name);
}

int main() {
    greet("Alice");
    return 0;
}</code>

使用函数有助于保持代码组织性和可重用性。


结构体

结构体(struct)将相关变量组合在一个名称下:

<code class="c">// 定义一个名为'player'的结构体,包含两个成员
struct player {
    char name[50]; // 字符数组'name'存储玩家姓名 (最多50个字符)
    int score; // 整数'score'存储玩家分数
};

// 创建一个'player'结构体的实例并初始化
struct player player1 = {"Alice", 100}; // 初始化'player1',姓名为"Alice",分数为100

// 打印玩家姓名和分数
printf("姓名:%s,分数:%d", player1.name, player1.score); // 输出:姓名:Alice,分数:100</code>

结构体通常用于创建复杂的数据模型,例如记录或对象。


指针

指针是存储内存地址的变量,可以实现高效的数据处理:

<code class="c">int value = 42; // 声明一个整数变量'value'并初始化为42
int *ptr = &value; // 声明一个指向整数的指针变量'ptr'并将其初始化为'value'的地址
printf("值:%d,地址:%p", *ptr, ptr); // 打印'ptr'指向的值和'ptr'存储的地址</code>

指针对于C语言中的动态内存分配和底层操作至关重要。


学习C语言并积累了这些实用信息。掌握这些概念将为您的C语言编程打下坚实的基础。将本指南作为参考,并定期练习,您将很快从初学者成长为C语言专家。祝您编程愉快!

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2931

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

534

2025.10.31

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

502

2026.02.12

css中float用法
css中float用法

css中float属性允许元素脱离文档流并沿其父元素边缘排列,用于创建并排列、对齐文本图像、浮动菜单边栏和重叠元素。想了解更多float的相关内容,可以阅读本专题下面的文章。

6507

2024.04.28

C++中int、float和double的区别
C++中int、float和double的区别

本专题整合了c++中int和double的区别,阅读专题下面的文章了解更多详细内容。

744

2025.10.23

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

6064

2023.10.24

Go语言中的运算符有哪些
Go语言中的运算符有哪些

Go语言中的运算符有:1、加法运算符;2、减法运算符;3、乘法运算符;4、除法运算符;5、取余运算符;6、比较运算符;7、位运算符;8、按位与运算符;9、按位或运算符;10、按位异或运算符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2924

2024.02.23

php三元运算符用法
php三元运算符用法

本专题整合了php三元运算符相关教程,阅读专题下面的文章了解更多详细内容。

1772

2025.10.17

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

60

2026.10.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
C++ Reference
C++ Reference

共0课时 | 0人学习

RabbitMQ 教程手册
RabbitMQ 教程手册

共0课时 | 0人学习

C# 教程
C# 教程

共94课时 | 22.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn