当前位置: 首页 > news >正文

【C语言】手把手带你搭建环境,写出人生中第一个C语言程序~你好,世界

Hello world!

    • 1. 前言
    • 2. 准备知识
      • 2.1 环境
      • 2.2 文件的分类
      • 2.3 注释
        • 2.3.1 注释的作用
        • 2.3.2 注释的两种风格
          • 2.3.2.1 C语言的注释风格
          • 2.3.2.2 C++的注释风格
        • 2.3.3 VS中注释和取消注释的快捷键
    • 3. 开始演示
      • 3.1 创建项目
      • 3.2 创建源文件
      • 3.3 写代码
      • 3.4 编译+链接+运行
    • 4. 代码解释
      • 4.1 写主函数
      • 4.2 printf函数
      • 4.3 头文件
      • 4.4 stdio.h
      • 4.5 补充知识

1. 前言

欢迎收看有手就行C语言系列,我是努力学习游泳的鱼。我之前也写过一个系列的C语言教程,不过自我感觉写的还有较大的进步空间,所以重置了这一版,希望讲解得更加通俗易懂,大伙如果喜欢的话可以点赞收藏评论支持一下博主,如果关注一下的话就更好啦。

2. 准备知识

2.1 环境

工欲善其事必先利其器,我们需要写C语言代码的地方。这里用微软的visual studio 2022来演示。
vs2022是集成开发环境,集成了编辑器+编译器+调试器。适合新手入门使用。
写代码的步骤如下:

1、创建项目
2、创建源文件
3、写代码
4、编译+链接+运行

2.2 文件的分类

在C语言里,主要有两种文件,后缀分别是.h和.c
.h即head,头文件
.c即源文件

2.3 注释

C语言的代码可以添加注释。注释不影响程序的执行。

2.3.1 注释的作用

注释是用来解释代码的,同时我们可以注释掉一些不需要的代码,相当于把它屏蔽掉。

2.3.2 注释的两种风格

2.3.2.1 C语言的注释风格
/* 这里写注释
	这里写注释
	这里写注释 */

缺点:不能嵌套注释。

2.3.2.2 C++的注释风格
// 这里写注释
// 这里写注释
// 这里写注释

2.3.3 VS中注释和取消注释的快捷键

选中要注释的部分,按ctrl+k+c注释。
选中要取消注释的部分,按ctrl+k+u取消注释。

3. 开始演示

3.1 创建项目

点击创建新项目,选择空项目,点击下一步,输入项目名称和项目路径,点击创建
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 创建源文件

左键选择源文件,右键点击源文件,添加,新建项
弹出的窗口选择C++文件(但实际是C文件),文件名后缀记得改成.c,点击添加
在这里插入图片描述
在这里插入图片描述

注意上图中文件后缀名是.c

3.3 写代码

先放出代码,待会解释

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

3.4 编译+链接+运行

按住ctrl+F5
如果没反应那就按Fn+ctrl+F5
看看效果吧!

4. 代码解释

4.1 写主函数

写C语言代码,首先要写主函数

int main()
{
	// 这里写其他的东西
	return 0;
}

如上就是主函数最标准的写法。

4.2 printf函数

printf是C语言提供的库函数,专门用来按照某种指定的格式打印的
比如我们要想打印Hello world!这个字符串,只需要用双引号引起来打印即可。

printf("Hello world!\n");

注意这里有一个\n,是用来换行的。

4.3 头文件

printf是C语言的库函数,也就是说是别人的东西。用别人的东西,我们需要先打一声招呼。在C语言代码里,我们使用库函数,需要包含对应的头文件。而printf对应的头文件是stdio.h

#include <stdio.h>

4.4 stdio.h

std即standard,标准
i即in,输入
o即out,输出

stdio.h,即标准输入输出头文件

4.5 补充知识

主函数在一个工程中有且仅有一个

任何一个C语言程序,都是从主函数的第一行开始执行的。
也就是说,

主函数是程序的入口

而入口只能有1个!如果有2个主函数,那应该从哪里开始执行呢?
而且不能没有入口!如果没有入口,那又应该从哪里开始执行呢?
所以,一定要记住,一个工程中可能有很多源文件,但主函数有且仅有一个

相关文章:

  • java------方法的覆盖[重写],super和final关键字
  • linux环境安装Spring boot开发环境-jdk,mysql,tomcat、git、maven
  • MATLAB算法实战应用案例精讲-【神经网络】激活函数:softmax函数(附MATLAB和Python实现代码)
  • Nginx的优化,安全与防盗链
  • 网络安全行业黑话大全
  • 【第二十篇】商城系统-秒杀功能设计与实现
  • MATLAB算法实战应用案例精讲-【神经网络】激活函数:tanh(附MATLAB、R语言、Python和C++代码)
  • 10.3复习
  • 【手把手带你学JavaSE】泛型的理解与使用
  • flink常见问题(持续更新)
  • ⌈Linux_ 感受系统美学⌋ 剖释“Linux下一切皆文件” | 底层级操作增进Linux内功
  • 【Java知识点大全】
  • 【华为机试真题 Python实现】矩阵扩散
  • 建立对单片机/嵌入式启动、运行的整体认知
  • 猿创征文 | 什么是PHP,PHP如何创建数据库
  • [译]如何构建服务器端web组件,为何要构建?
  • 【Linux系统编程】快速查找errno错误码信息
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Angular 2 DI - IoC DI - 1
  • C学习-枚举(九)
  • git 常用命令
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Node 版本管理
  • Node项目之评分系统(二)- 数据库设计
  • select2 取值 遍历 设置默认值
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 跨域
  • 扑朔迷离的属性和特性【彻底弄清】
  • 区块链技术特点之去中心化特性
  • 通过npm或yarn自动生成vue组件
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 智能合约Solidity教程-事件和日志(一)
  • Spring第一个helloWorld
  • 大数据全解:定义、价值及挑战
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​马来语翻译中文去哪比较好?
  • #13 yum、编译安装与sed命令的使用
  • #if和#ifdef区别
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #每日一题合集#牛客JZ23-JZ33
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (笔试题)分解质因式
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (实战篇)如何缓存数据
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (五)MySQL的备份及恢复
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)jdk与jre的区别
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .describe() python_Python-Win32com-Excel