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

1.3 C 语言入门实战:从 Hello World 到基础语法解析

目录

1 程序的作用

2 初识 Hello World

2.1 新建项目

2.2 程序解释 

3 printf 的作用

4 注释及其注意事项

4.1 单行注释

4.2 多行注释

4.3 嵌套错误

5 项目在磁盘上的位置


1 程序的作用

        如下图所示,我们编写了一个可以做加法的程序,我们给程序输入 1 和 2,那么程序输出结果 3,因此这个程序的作用是完成某种计算

        提示:程序在现代社会中扮演着多种多样的角色,其作用远超过简单的计算任务。它们能够自动化重复性任务,处理和分析数据,管理信息,提供用户交互界面,辅助决策,提供娱乐和媒体体验,支持教育和培训,实现网络通信,保护安全,以及进行智能控制等。


2 初识 Hello World

2.1 新建项目

        点击 “文件”,选择 “新建项目”,如下图所示:

        左侧选择 “ C 可执行文件”,然后在右侧选择 “项目存放位置”,最后点击 “创建”,如下图所示: 

        新建项目后默认会有一个 main.c 代码,如下图所示:

2.2 程序解释 

        代码及解释如下所示: 

#include <stdio.h> // 引入标准输入输出头文件,以便使用 printf 函数  int main() { // 主函数,程序的入口点  // 调用 printf 函数,在屏幕上打印出 "Hello, World!\n"  // \n 是一个转义字符,表示新的一行  printf("Hello, World!\n");  // main 函数返回 0,表示程序正常结束  return 0;  
}

  • main 主函数名int 函数返回值类型
  • 每个 C 程序有且只能有一个主函数 main程序从 main 函数开始执行
  • 花括号 {} 是函数开始和结束的标志,不可省略。
  •  每个 C 语句均以半角分号结束

3 printf 的作用

        使用标准库函数时应在程序开头一行书写如下内容(标准输入输出头文件):

#include <stdio.h>  // printf 函数需要使用标准输入输出头文件

        printf 函数起打印输出的作用,它将双引号中的字符串 Hello, World! 打印到屏幕上

        提示:更多关于 printf 函数的知识点在后续章节进行讲解。


4 注释及其注意事项

        在 C 语言中,注释是用来解释代码或暂时禁用代码部分的一种手段,它不会被编译器执行。 C 语言支持两种类型的注释:行注释(也称为单行注释)和块注释(也称为多行注释)

4.1 单行注释

        单行注释(行注释)以 双斜杠( // )开始,直到该行的末尾。这种注释方式只能用于注释掉从 // 开始到行尾的部分代码。如下代码所示:

// 这是一个行注释  printf("Hello, World!\n");  // 这也是行注释

        提示:CLion 中单行注释的快捷键是:ctrl + / 

注意事项

  1. 跨行:行注释只能注释掉它所在行的内容,不能跨越多行。如果需要在多行中添加注释,需要为每一行都添加 // 或使用块注释。
  2. 嵌套:行注释不支持嵌套,因为注释的结束是由行尾确定的,与注释内容无关。嵌套写法也会显得不够专业。
// 这是一个行注释,尝试在这里嵌套另一个 // 行注释是不专业的写法  
// 但实际上,编译器会自动忽略这一行剩余的所有内容
// 所以,写一个 // 就可够了,没必要写多个// // // 

4.2 多行注释

       多行注释(块注释)以 /* 开始,以 */ 结束它们之间的所有内容(包括多行)都被视为注释

/* 这是一个多行注释  它可以跨越多行  
*/  
int b = 10;  /*  
下面的代码块被注释掉了,  
因此不会被编译器执行。  
int c = a + b;  
*/

          提示:CLion 中多行注释的快捷键是:ctrl + shift + / 

4.3 嵌套错误

        需要注意的是,尽管多行注释可以跨越多行,但它同样不支持嵌套。也就是说,不能在一个多行注释内部再开始一个新的多行注释。如果尝试这样做,可能会导致编译错误。如下所示:

/* 这是一个多行注释  /* 尝试开始另一个多行注释 */ 到上面一行末尾第一个块注释就算完成了,编译器会因为我不是注释内容而报错printf("Hello, World!\n"); */

        在这个例子中,第二个 /* 并不会开始一个新的块注释,而是作为第一个块注释的一部分。由于第一个 /* 遇到后面的第一个 */ 就会构成一个完整的块注释,这会导致第一个 */ 之后的内容(原本应为注释的内容),被编译器错误地解释和执行,从而引起编译错误。如下图所示:


5 项目在磁盘上的位置

        如下图所示,右键单击 “项目名”,选择打开,选择 Explorer(打开于):

        就可以看到如下界面,就是我们的项目文件夹:

相关文章:

1.3 C 语言入门实战:从 Hello World 到基础语法解析

目录 1 程序的作用 2 初识 Hello World 2.1 新建项目 2.2 程序解释 3 printf 的作用 4 注释及其注意事项 4.1 单行注释 4.2 多行注释 4.3 嵌套错误 5 项目在磁盘上的位置 1 程序的作用 如下图所示&#xff0c;我们编写了一个可以做加法的程序&#xff0c;我们给程序…...

一文读懂什么是Go语言goroutine

1. 进程、线程和协程的区别 进程: 进程是具有一定独立功能的程序&#xff0c;进程是系统资源分配和调度的最小单位。每个进程都有自己的独立内存空间&#xff0c;不同进程通过进程间通信来通信。由于进程比较重量&#xff0c;占据独立的内存&#xff0c;所以上下文进程间的切换…...

计算机毕业设计 农家乐管理平台 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…...

Spring Boot优缺点

Spring Boot 是一款用于简化Spring应用开发的框架&#xff0c;它集成了大量常用的框架和工具&#xff0c;大大简化了Spring项目的配置和部署。下面是Spring Boot的优缺点&#xff1a; 优点&#xff1a; 简化配置&#xff1a;Spring Boot自动配置功能可以根据应用的依赖自动配…...

Android Studio中创建apk签名文件

本文以macOS中Android Studio 2021.1.1版本为例介绍创建apk签名文件的操作步骤&#xff1a; 1.启动Android Studio&#xff0c;并打开一个Android项目。 2.依次点击菜单&#xff1a;Build -> Generate Signed Bundle / APK...。 3.在弹出的"Generate Signed Bundle or …...

CRC32 JAVA C#实现

项目中用到CRC32进行校验得地方&#xff0c;需要用到C#和java进行对比&#xff1a; 一、C#实现&#xff1a; class CRC32Cls { protected ulong[] Crc32Table; //生成CRC32码表 public void GetCRC32Table() { ulong Crc; …...

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——5Webscoket节点的使用

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——5Webscoket节点的使用 ​ 有了前面几篇文章的铺垫&#xff0c;现在已经可以实现我到手测试那一步的 1.解读usb_websocket_display.launch.py ​ 首先进入这个目录/root/dev_ws/src/origincar/originca…...

深入学习小程序第二天:事件处理与用户交互

一、概念 1. 事件绑定与类型 在小程序中&#xff0c;通过在组件上添加特定的属性&#xff08;如 bind 开头的属性&#xff09;来绑定事件处理函数&#xff0c;以响应用户的交互操作。常见的事件类型包括触摸事件、表单事件和系统事件&#xff1a; 触摸事件&#xff1a;用于响…...

操作系统快速入门(一)

&#x1f600;前言 本篇博文是关于操作系统的&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的动力&#x1f609;&…...

Spring Cloud微服务性能优化:策略、实践与未来趋势

标题&#xff1a;Spring Cloud微服务性能优化&#xff1a;策略、实践与未来趋势 摘要 在微服务架构中&#xff0c;服务调用链路的性能优化是确保系统高效运行的关键。Spring Cloud作为微服务架构的主流实现之一&#xff0c;提供了多种工具和方法来优化服务间的调用。本文将深…...

秒懂C++之多态

目录 一. 多态的概念 二. 多态的定义及实现 多态的构成条件 虚函数重写的例外 协变(基类与派生类虚函数返回值类型不同) 析构函数的重写(基类与派生类析构函数的名字不同) 练习例题 final override 重载、覆盖(重写)、隐藏(重定义)的对比 三. 抽象类 四. 多态的原理…...

C语言:求最大数不用数组

&#xff08;1&#xff09;题目&#xff1a; 输入一批正数用空格隔开&#xff0c;个数不限&#xff0c;输入0时结束循环&#xff0c;并且输出这批整数的最大值。 &#xff08;2&#xff09;代码&#xff1a; #include "stdio.h" int main() {int max 0; // 假设输入…...

零门槛成为HelpLook推荐官,邀好友加入,奖励享不停!

什么&#xff01;&#xff1f; 还有谁不知道HelpLook推荐官计划&#xff01; 只需要简单地注册加入 在好友成功订阅套餐之后 可一次性获得20%的丰厚现金返佣 HelpLook是一款快速搭建AI知识库的系统&#xff0c;并帮助企业0代码搭建帮助中心、FAQs、SOPs、产品文档、说明书和…...

基于python的图书馆大数据可视化分析系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;本人精通Java、Python、C#、C、C编程语言&#xff0c;同时也熟练掌握微信小程序、Php和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验&#xff0c;能够为学生提供各类…...

利用formdata自动序列化和xhr上传表单到后端

//FormData对象是XMLHTTPRequest level2新增的类型&#xff0c;它可以自动序列化表单内容&#xff0c;不再需要我们去写序列化表单方法&#xff1b; FormData()即可以直接把整个表单给它&#xff0c;也可以分别使用append(‘字段’,‘值’)方法给FormData()&#xff1b; 现在就…...

视频号小店大地震?还好我看了原文

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 我X&#xff0c;如果不是看了原文&#xff0c;我差点也上当了。虽然视频号小店关闭了450个类目&#xff0c;但又重新开放了412个类目啊。 昨天&#xff08;8月9日&#xff09;&#xff0c;视频号一口气发了10个公…...

Genymotion adb shell

Genymotion 账户是 qq邮箱 参考 Ubuntu 20.04 安装 Android 模拟器 Genymotion https://www.zzzmh.cn/post/553cd96d4e47490a90b3302a76a93c0d Genymotion adb shell adb shell C:\Program Files\Genymobile\Genymotion\tools>adb shell lsusb Bus 001 Device 001: ID …...

探索AI与社交的交汇点:看Facebook如何引领智能化革命

在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;正成为各大科技公司变革的重要驱动力。作为全球领先的社交媒体平台&#xff0c;Facebook&#xff08;现Meta Platforms&#xff09;正处于这一智能化革命的前沿。通过不断创新和应用AI技术&#xff0c;Facebook…...

JVM 加载阶段 Class对象加载位置是在 堆中还是方法区?

在JVM&#xff08;Java虚拟机&#xff09;的类加载过程中&#xff0c;Class对象的加载位置涉及到堆&#xff08;Heap&#xff09;和方法区&#xff08;Method Area&#xff09;两个关键区域。具体来说&#xff0c;类的加载阶段涉及到将类的.class文件中的二进制数据读入到内存中…...

Android 获取短信验证

Android 获取短信验证 Android 获取短信验证 输入发短信的手机号&#xff0c;点击获取验证码&#xff0c;等接收到验证码后就会自动获取 SmsReceiver.Java import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; impor…...

负载均衡详细概念介绍之(四层和七层实现)

目录 一、负载均衡介绍 1.1什么是负载均衡 ​编辑 1.2 为什么要用负载均衡 二、负载均衡的类型 2.1 通过一些硬件实现 2.2 四层负载均衡 2.3 七层负载均衡 三、四层和七层的区别 及特点 一、负载均衡介绍 1.1什么是负载均衡 负载均衡:Load Balance&#xff0c;简称LB&a…...

力扣 | 递增子序列 | 动态规划 | 最长递增子序列、最长递增子序列的个数、及其变式

文章目录 一、300. 最长递增子序列二、673. 最长递增子序列的个数三、变式1、646. 最长数对链2、1218. 最长定差子序列3、1027. 最长等差数列4、354. 俄罗斯套娃信封问题5、1964. 找出到每个位置为止最长的有效障碍赛跑路线 最长递增子序列&#xff1a;原序-递增数值问题 最长定…...

008 | 基于RNN和LSTM的贵州茅台股票开盘价预测

基于RNN和LSTM的贵州茅台股票开盘价预测 项目简介&#xff1a; 本项目旨在通过使用Tushare下载贵州茅台的股票数据&#xff0c;并基于这些历史数据&#xff0c;使用TensorFlow 2.0实现循环神经网络&#xff08;RNN&#xff09;和长短期记忆网络&#xff08;LSTM&#xff09;来…...

尚硅谷谷粒商城项目笔记——六、使用navciat连接docker中的mysql容器【电脑CPU:AMD】

六、使用navciat连接docker中的mysql容器 注意&#xff1a; 因为电脑是AMD芯片&#xff0c;自己知识储备不够&#xff0c;无法保证和课程中用到的环境一样&#xff0c;所以环境都是自己根据适应硬件软件环境重新配置的&#xff0c;这里的虚拟机使用的是VMware。 1navicat免费…...

【git】本地更改了,但又想直接从远端拉取覆盖本地(放弃本地更改前行下载)

拉取时错误信息 error: cannot pull with rebase: You have unstaged changes. error: Please commit or stash them.个错误信息表明你在尝试使用git pull --rebase命令时&#xff0c;你的工作目录中存在未提交的更改&#xff08;即未暂存&#xff08;unstaged&#xff09;的更…...

基于JSP的书店仓库管理系统

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;JSP 数据库&#xff1a;MySQL 技术&#xff1a;JSPJava 工具&#xff1a;ECLIPSE、Tomcat 系统展示 首页 管理员功能模块 用户功能模块 员工功能模…...

pytorch框架保存和加载模型

在 PyTorch 中&#xff0c;有几种常见的方法来保存和加载模型&#xff0c;具体方法取决于你想保存什么内容&#xff08;例如&#xff0c;只保存模型的权重&#xff0c;还是保存整个模型&#xff09;。下面我将介绍几种常见的保存和加载模型的方法。 1、保存和加载模型的 state…...

开发输出防护栏以检测GPT-4o幻觉

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

代码复现,代码改进,算法复现,模型复现

目前空闲可接硕士&#xff0c;博士&#xff0c;代码复现&#xff0c;改进代码&#xff0c;文献复现&#xff0c;算法复现&#xff0c;模型复现&#xff0c;文章复现&#xff0c;科研复现&#xff0c;可定制创新点&#xff0c;对比&#xff0c;模块&#xff0c;创新思路&#xf…...

基于STM32开发的智能机器人系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码控制代码应用场景 自动导航机器人家用服务机器人常见问题及解决方案 常见问题解决方案结论 1. 引言 智能机器人通过整合传感器、控制器和执行机构&#xff0c;能够自主完成环境感…...