C 语言学习笔记二

C语言学习笔记二---v 这篇教程以幽默风趣的方式手把手教你用C语言编写第一个"Hello World"程序。主要内容包括: 开发环境搭建 推荐使用VS Code或Visual Studio 详细图解创建项目的步骤 代码编写指南 完整Hello World代码示例 常见错误排查(如缺少分号、头文件等) 代码深度解析 逐行讲解#include、main()、printf()等关键语句 解释程序执行流程和返回值意义 进阶内容 预处理、编译、汇编、链接四个阶段的原理 代码修改实验(如更改输出内容、调整格式) 教程采用大 阅读详情

程序设计入门 — C 语言

老师:“C语言是编程之母,学好了它,其他语言都是弟弟!”

我:“好好好,母上大人好!”(内心OS:母上大人怎么连个 Hello World 都写不利索?)

第一周 程序设计与 C 语言

本周目标:从编程小白进阶成“能写出 Hello World 但会被自己蠢哭”的菜鸟。

6 第一个程序 HelloWord

📝6.1 C 语言笔记 | 分三步实现第一个程序 Hello World

(适合刚接触编程的小白,像学学姐手把手教学一样!😎)


🚀 第一步:创建文件
  1. 选工具:

    • 推荐用 VS Code(免费轻量)或 Visual Studio 2022(集成编译),记事本也行但没高亮。
    • ❌ 不要用Word!会乱码!
  2. 建文件(以 Visual Studio 2022 为例):

    • 点击创建新项目 。
    • 点击控制台应用后,点击下一步。
    • 项目名称改为 HelloWord
    • 位置按自己喜好修改。
    • 点击创建。
    • 将原始文件删除并添加新文件。
  3. 图片步骤如下:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

🖋️ 第二步:编写代码
  1. 敲代码:

    #include<stdio.h>  // 1. 导入头文件(必须第一行!)
     
    int main() 
    {                 // 2. 主函数入口(程序从这里开始跑)
        printf("Hello World!\n");  // 3. 输出语句(\n是换行)
        return 0;       // 4. 返回0表示程序正常结束
    }
    
  2. 避坑指南:

    • 🚨 报错printf未声明?→ 忘记加#include <stdio.h>。
    • 🚨 报错expected ';' before '}'?→ 漏了分号;(每行结尾都要有!)。
    • 🚨 中文乱码?→ 检查编码是否为UTF-8,或暂时改用英文输出。

▶️ 第三步:运行代码

1.保存文件:

  • 按 CTRL + S

2.运行文件:

  • 按 CTRL + F5

3.结果如图所示:

在这里插入图片描述


📌本节总结:
  • 🔧 框架思维:先写main()骨架,再填内容,像搭积木一样。
  • 🔍 细节控:C语言对标点敏感,分号、括号、引号一个都不能错!
  • 💪 多动手:照着敲一遍,比看10遍视频管用!

下节预告:Hello World 代码深度解析!🚀
(PS:第一次运行成功时,有没有觉得超有成就感?😎)

📝6.2 C 语言笔记 | Hello World 代码深度解析

(适合已写过第一个程序,想彻底搞懂每行代码含义的同学~)


🔍 代码逐行解剖
#include <stdio.h>  // 📚 头文件:程序的“工具箱”
int main() {        // 🚀 主函数:程序入口点
    printf("Hello World!\n");  // 🖨️ 输出语句:向屏幕打印内容
    return 0;       // ✅ 返回值:告诉系统程序正常结束
}

📚 1. #include <stdio.h> —— 头文件导入
  • 作用:引入标准输入输出库,让程序能用 printf(打印)、scanf(输入)等功能。
  • 类比:像做菜前要准备好调料(头文件),没有它,printf 这类“调料”就用不了。
  • 扩展:C 语言所有功能都分散在头文件中,比如数学函数在 <math.h>,字符串操作在 <string.h>。

🚀 2. int main() —— 主函数
  • 结构:

    int main() {  // int 表示函数返回一个整数
        // 代码逻辑
        return 0; // 必须返回整数,0通常表示成功
    }
    
  • 关键点:

    • 所有C程序必须有一个 main 函数,且只能有一个。
    • int 表示函数会返回一个整数值给操作系统(0成功,非0表示错误代码)。
    • 花括号 {} 包裹的代码块是函数的“身体”,按顺序执行。

🖨️ 3. printf("Hello World!\n"); —— 输出语句
  • 作用:向控制台打印文本内容。
  • 细节:
    • printf 是 “print formatted” 的缩写,支持格式化输出(如 %d 输出整数)。
    • \n 是转义字符,表示换行(不写的话,后续输出会紧接在这一行后面)。
    • 字符串必须用英文双引号 "",结尾必须有分号 ;(C语言语句结束标志)。
  • 常见错误:
    • 拼写错误:pritnf → 编译器会报错“未声明标识符”。
    • 漏分号:printf("...") → 报错“expected ‘;’ before ‘}’”。

✅ 4. return 0; —— 返回值
  • 作用:告诉操作系统程序执行结果。
  • 规则:
    • main 函数必须返回 int 类型值,0 表示成功,非0值(如 1)表示异常退出。
    • 在 C99 及之后的标准中,如果 main 函数末尾省略 return 0;,编译器会自动补充。

💡 代码执行流程
  1. 程序从 main 函数开始执行。
  2. 执行 printf 输出内容。
  3. 执行 return 0 结束程序,返回值 0 告诉系统“一切正常”。

🔧 修改代码实验
  • 实验1:改输出内容

    #include<stdio.h>  
     
    int main() 
    {                
        printf("Hello C语言!\n");  // 输出:Hello C语言!
        return 0;       
    }
    
  • 实验2:去掉 \n

    #include<stdio.h>  
     
    int main() 
    {                
        printf("Hello World!");   // 输出:Hello World!(光标停在行尾不换行)
        return 0;       
    }
    

📌本节总结:
  • 🔍 细节决定成败:C语言对符号(分号、引号、括号)极其敏感,漏一个就会报错。
  • 🧠 流程思维:程序是按代码顺序从上到下执行的,理解流程才能调试错误。
  • 💻 动手实践:改一行代码、删一个符号,看看报错信息,比背语法更有效!

下节预告: Hello World 文件执行流程深度解析 🚀

📝6.3 C 语言笔记 | Hello World 文件执行流程深度解析


🔍 代码执行流程:从编写到运行的完整生命周期
#include <stdio.h>  // 📚 头文件:程序的“工具箱”
int main() {        // 🚀 主函数:程序入口点
    printf("Hello World!\n");  // 🖨️ 输出语句:向屏幕打印内容
    return 0;       // ✅ 返回值:告诉系统程序正常结束
}

🔧 执行流程分步解析
  1. 预处理阶段(Preprocessing)
    • 操作:编译器首先处理 #include <stdio.h>,将标准输入输出库的代码“复制”到当前文件中。
    • 作用:相当于给程序配备“工具箱”,使 printf 等函数可用。
    • 细节:
      • 头文件本质是代码的“集合包”,stdio.h 包含了输入输出函数的声明。
      • 预处理后的文件会变得“臃肿”,因为嵌入了大量库代码。
  2. 编译阶段(Compilation)
    • 操作:将预处理后的代码翻译为汇编语言(Assembly)。
    • 作用:将人类可读的C代码转为机器能理解的底层指令。
    • 细节:
      • printf("Hello World!\n"); 会被翻译为类似 mov(数据移动)、call(函数调用)的指令。
      • 生成 .s 或 .asm 文件(但通常隐藏,直接进入下一步)。
  3. 汇编阶段(Assembly)
    • 操作:将汇编代码转换为二进制目标文件(.o 或 .obj)。
    • 作用:生成机器码,但此时程序仍是一个“半成品”(缺少外部依赖)。
    • 类比:像组装电脑主板,但显卡(printf 的实现)还未安装。
  4. 链接阶段(Linking)
    • 操作:链接器将目标文件与标准库(如 printf 的实现)合并,生成可执行文件(.exe 或 .out)。
    • 关键点:
      • 解决函数调用地址问题(如 printf 的具体位置)。
      • 生成最终的可执行程序,此时程序已“完整”。
  5. 执行阶段(Execution)
    • 操作:操作系统加载可执行文件到内存,从 main 函数开始执行。
    • 流程:
      1. 执行 printf,输出 Hello World! 并换行。
      2. 执行 return 0,告诉操作系统程序正常结束。
    • 细节:
      • 若省略 return 0,C99 及之后标准会自动补充,但显式写出更规范。
      • 程序结束后,操作系统回收资源,控制权交还用户。

🔍 流程图解
编写代码 → 预处理(包含头文件) → 编译(转汇编) → 汇编(转二进制) → 链接(合并库) → 执行(运行程序)

🔧 修改代码实验
  • 实验1:改输出内容

    #include<stdio.h>  
    int main() {                
        printf("Hello C语言!\n");  // 输出:Hello C语言!
        return 0;       
    }
    
    • 结果:控制台显示 Hello C语言!(程序会说中文了!)。
  • 实验2:去掉 \n

    #include<stdio.h>  
    int main() {                
        printf("Hello World!");   // 输出:Hello World!(光标停在行尾不换行)
        return 0;       
    }
    
    • 结果:输出 Hello World! 后不换行,下次输出会紧接在后面(像排队不换行)。
  • 实验3:省略 return 0

    #include<stdio.h>  
    int main() {                
        printf("Hello World!\n");  
        // 省略 return 0;       
    }
    
    • 结果:程序仍能运行,但部分编译器会警告“not all control paths return a value”(非所有路径都返回值)。在C99及之后标准中,main 函数末尾省略 return 0 会被自动补充。

📌 本节总结:
  • 🔍 流程为王:理解预处理、编译、汇编、链接、执行五步流程,比死记语法更重要。
  • 🧠 细节决定成败:C语言对符号(分号、引号、括号)极其敏感,漏一个就会报错。
  • 💻 动手实践:改一行代码、删一个符号,看看报错信息,比背语法更有效!

下节预告:注释的基本使用 🚀

C语言学习笔记(二)——C语言高级(二) 指针、数组、二维数组、指针运算 阅读详情

相关推荐

C语言学习笔记(二)——C语言高级(一)

C语言函数、变量分析、数组、字符串。

lts1050981148的博客 494

C语言学习笔记(二)

由[ ] 包裹的为可选,即[ ] 包裹的可省略初步学习了c语言的一些发展史、特点,四大运行过程,编写了一个Hello Word程序,并成功执行。

刘念卿的博客 909

大数据工程中的多模态数据处理技术

模态”(Modality)指的是数据的表现形式文本(Text):新闻、评论、文案等;图像(Image):照片、截图、医学影像等;音频(Audio):语音、音乐、环境声音等;视频(Video):短视频、监控视频、电影等(本质是图像+音频的组合);数值/结构化数据(Numerical/Structured):用户年龄、商品价格、传感器数据等;时间序列(Time Series):股票价格、物流轨迹、心率数据等。多模态数据(Multimodal Data)是指包含两种或以上模态的数据集。

AI云原生与云计算技术学院 1274

C语言学习笔记②_函数

C语言学习笔记——自制函数总结程序 /*苦涩红茶设计的有返回值的函数和递归练习-开发环境:Code::block*/ #include<stdio.h> int imax(int a,int b);///ANSI C int recur(int n); long cloop(int n); long rloop(int n); void binary_calculate(unsign...

Weirdo的博客 448

CentOS8静默安装Oracle11.2.0.1

背景 新安装oracle,用静默安装方式就不需要安装图形界面了,省时省力。 前期准备工作与图形化安装一样,如创建用户|用户组、环境变量、内核参数、创建目录等. 可参考图形化安装,链接:https://blog.youkuaiyun.com/heroicpoem/article/details/104229369 环境 平台 版本 操作系统 centOS 8 Oracle 11gR2 1.响应文件 响应文件的内容就是图形化安装时手工设置的选项内容。 解压后,database/response/db

heroicpoem的专栏 4518

清理异常值(MAD:绝对中位差)

清理异常数据: 中位数绝对偏差(MAD):用来描述单变量样本在定量数据中可变的一种标准 在统计学中,绝对中位差是刻画一元数据样本变化的一个鲁棒度量。由公式可以看出,其求解还算简单,给定一个数据样本集,首先求其中位数,然后求原始数据减去中位数的绝对值从而形成一个新的数据样本,再求新的数据样本的中位数即为绝对中位差。比如说有一个数据样本集X={2 3 8 7 9 6 4},这时候数据的中位数是6,原...

spider_man 1万+

C语言学习笔记<二>

这个用法的本质是替换。大体用法如下:#define 宏名作用域#undef 宏名(如果没有这一条,代表着作用域是从源码开始到源码结束)具体用法是这样的:a.无参数宏定义#define 宏名标识符 宏体【常量,表达式(加括号,避免意义出错),格式化字符串】标识符:由字母,数字,下划线组成第一个字符必须是下划线或者字母,不可与关键字相同b.带参数宏定义(注意与函数的差别,会略略提到)#define 宏名(形参列表)形参表达式也可以是多条语句,多条语句时使用{}括起来。

m0_74812776的博客 2040

Android Profiler 帧率优化实战与性能调优

本文详细介绍了使用Android Profiler进行帧率优化与性能调优的实战方法。通过分析主线程状态、FPS曲线和渲染阶段耗时,精准定位卡顿根源,并提供减少过度绘制、优化绘制命令及改善资源使用的具体策略。文章结合电商、游戏等真实案例,帮助开发者有效解决卡顿问题,提升应用流畅度。

palm99的专栏 536

C语言学习笔记二

a++的值是a加1以前的值,而++a的值是加了1以后的值,无论哪个,a自己的值都加了1了,即a=a+1,但a++和++a结果不一样,如下。=的优先级比其他的低,而连续的关系运算是从左到右进行的。”,而后面的赋值语句写在if语句的下一行,并且缩进了,在这一行结束的时候有一个表示语句结束的“;有//和/* */两种,//为单行注释,/* */为延续数行的注释。关系运算符,也叫比较运算符。算子是指参与运算的值,这个值可能是常数,还可能是另一个方法的返回值。关系运算的结果只有两个值,要么是整数1,要么是整数0。

2402_87497721的博客 922

x265探索与研究(四):如何编码视频?

如何编码视频?           本文介绍x265中的两种编码视频方法,一是采用命令行的方法;二是GUI的方式。   1、命令行的方法   (1)、第一种方式生成*.265格式的视频文件           第一种方式可以生成*.265格式的视频文件,对应的命令为: x265 --input-res 352x288 --fps 30 hall_cif_352x288_300.y

成长Bar的博客专栏 3936

Python操作WPS文档

在Python中,我们可以使用第三方库来操作WPS文档,实现自动化的文档处理。本文将介绍如何使用Python来打开、读取、修改和保存WPS文档的内容。库,我们可以打开、读取、修改和保存WPS文档的内容。你可以根据自己的需求进一步扩展和优化这些代码,实现更复杂的文档处理功能。安装完成后,我们就可以开始使用它来操作WPS文档了。方法将修改后的文档保存到指定的路径。方法将修改后的文档保存到指定的路径。在上面的代码中,我们通过修改段落的。属性,可以改变段落的文本内容。完成对文档的修改后,我们可以使用。

2301_79366177的博客 5617

C语言学习笔记(二)

C语言学习笔记(二)字符串+转义字符+注释(1)字符串(2)转义字符(3)注释 字符串+转义字符+注释 (1)字符串 在C语言中没有字符串类型。只有字符类型。 “Hello bit.\n” 这种由双引号引起来的一串字符称为字符串字面量,或者简称字符串。 注:字符串的结束标志是’\0’ 的转义字符,在计算字符串长度的时候\0是结束标志,不算作字符串内容。 #include<stdio.h> int main() { char arr[] = "Hello bit\n"; //使用字符

fengdelaodie的博客 261

华为OD机试真题2025双机位A卷 C语言 实现【采购订单】

在一个采购系统中,采购申请(PR)需要经过审批后才能生成采购订单(PO)。每个PR包含商品的单价(假设相同商品的单价一定是一样的)及数量信息。系统要求对商品进行分类处理:单价高于100元的商品需要单独处理,单价低于或等于100元的相同商品可以合并到同一采购订单PO中。针对单价低于100的小额订单,如果量大可以打折购买。

MISAYAONE的博客 351

C语言学习笔记——指针(二)

本文在C语言学习笔记——指针(一)的前提下,就某些关于指针的问题,进行进一步的讨论。 一、不同表达式下,指针的偏移量 不同表达式下,指针的偏移量是不一样的! 请看下面示例。 例1: 不同表达式下,指针的偏移量 测试代码如下: #include&lt;stdio.h&gt; void main(int argc, char const *argv[]) { //定义一个in...

不吃鱼的猫的博客 903

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

c语言学习笔记二

函数  注: linux下运行.c执行以下命令:        gcc fileName.c -lm(由于数学函数位于libm.so中)        ./a.out    c标准库和glibc   c标准库  描述c的语法            描述c标准库   glibc 是linux平台上最广泛的c函数库(包括标准库和所有系统库)      数学函数   示例代

retacn_yue的专栏 618

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

计算机二级C语言学习笔记(二)

上一篇:2019年计算机二级C语言学习笔记(一) ===================================== 回顾 很高兴能收到其他博主的补充建议,不知道这个平台可不可以@人,为你打call。这样吧,每次更新我都会尽力回答你们的问题。创建一个更好的交流平台。 补充建议: 一、选择题考点: 1、考点1: 11.视编译环境。比如VS某些定义、执行语句可交替。 13.稍微大一点的程序都是...

LinGavinQ 3986

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: C语言学习笔记二---v
下一篇: C语言学习笔记三 --- V
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路过的一个普通人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值