网站首页 > 技术文章 正文
刚开始接触C语言的时候,会遇到很多语法、运算符、函数等等问题,可能对于刚刚上手的朋友来说不太能够理解。所以今天通过编写代码,来分析一下每行代码的作用,帮助大家理解。
首先,我们先来写一段简单的代码。代码要求也很简单:创建一个整形变量,并且给其赋值,最后显示这个变量的值。
#include <stdio.h>
int main (void)
{
int demo;
demo = 21;
printf("Is ");
printf("Lucy\n");
printf("I am %d years old \n",demo);
return 0;
}
看了这段代码之后,如果认为屏幕上能够打印东西,说明我们的理解是对的。所以运行一下程序,来看一看结果。
运行之后可以看到程序输出了两行结果:
Is Lucy
I am 21 years old
虽然程序没有问题,但是不理解的朋友可能会有以下几点问题:
1:\n 和 %d 是什么意思
2:printf 打印了三个,为什么 Is 和 Lucy 合并到一起了
3:main 括号当中的 void 是干嘛用的
先不要着急,我们先来了解一下每行代码的作用。
#include <stdio.h>
告诉编译器,把 stdio.h 这个头文件包含到当前程序当中。头文件中包含了我们的代码所要支持的文件。
int main (void)
函数名main()是一个函数名,int表示main()函数返回一个整数,void表示main不带任何参数。
int demo;
声明一个变量demo,该变量是一个整形变量。
demo = 21;
给demo赋值,把值21赋值给demo,这样demo就等于是21。
printf("Is ");
printf("Lucy\n");
调用 printf() 函数
第一个printf()函数在我们的计算机屏幕上显示 Is ,(is后面我打了一个空格)光标停留在同一行。
第二个printf()函数显示的Lucy 紧跟在is后面,\n是告诉我们的计算机要另起一行,光标就移动到下一行。
printf("I am %d years old \n",demo);
同样也是调用 printf() 函数。不同的是,它把 demo 的值 21 一起打印出来,%d就是告诉计算机是以那种形式输出demo的值的。
return 0;
return 是给调用方返回一个值,这里可以看作是结束main函数所必须的要求
}
右花括号,表示函数体的结束
理解了每行代码之后,回想一下刚刚的几个问题:
1:\n 和 %d 是什么意思
2:printf 打印了三个,为什么 Is 和 Lucy 合并到一起了
3:main 括号当中的 void 是干嘛用的
第一个问题:
显然 \n 是告诉我们的计算机要另外起一行;
%d 呢是告诉我们的计算机输出的值是以整形的方式输出,%d 呢只是众多的形式中的一种,还有很多像是%f、%a、%p....等等众多形式。这里呢先不说那么多,以后用到再给大家科普,当然网上的资源也很多,大家可以去网上提前科普一下。
第二个问题:
其实第二个问题在第一个问题的时候就已经给大家解答了。
执行第一个 printf 的时候,因为 Is 的后面没有加 \n ,那么光标默认在第一行;
到执行到第二个 printf 的时候 Lucy 就直接跟在 Is 后面了;
到执行到第三个 printf 的时候时,因为 Lucy 后面加了一个 \n ,所以光标到第二行,所以第三个 printf 的内容是在第二行打印出来的。
第三个问题 *:
这里打个星号,是因为这个问题对刚刚开始学的朋友来说会有一些难理解。如果你能够理解,就忽略这个 * 号。
void 其实就是表示 main() 函数的参数是空的,就是没有的,如果你给 main() 函数传递参数的话,那么编译就会出错。
我们都知道 return 是一个返回函数,这里给我们的 return 返回的值是0,就是返回的是空的,所以这就是为什么在程序的最后面要加一个 return 0 ;的原因了。
当然,如果没有 void 的话,不管你传什么参数进去,都不会报错的。只不过就是不会处理这个参数而已。
那么本期的C语言干货就先分享到这里,欢迎大家一起来探讨。
我是Lucy,喜欢分享实用的干货。
- 上一篇: 详解 C 语言数据类型之 void 类型
- 下一篇: C语言中的void类型(c语言中void的作用)
猜你喜欢
- 2024-10-26 C语言、嵌入式项目中一些常用知识及技巧第一弹
- 2024-10-26 C语言编程:最常见 7 道C语言面试题,还是有不少人弄不明白?
- 2024-10-26 初识C语言:简介、环境搭建、第一个HelloWorld
- 2024-10-26 C|volatile关键字使用细节及适用场合
- 2024-10-26 C语言干货:函数知识详解(变量的作用域,全局变量,静态变量)
- 2024-10-26 小白入门C语言20问20答2(新手c语言)
- 2024-10-26 C语言的简单了解及学习2(c语言的入门知识)
- 2024-10-26 C 语言基本语法(c语言的基础语法)
- 2024-10-26 C语言数据怎么描述?最全面解析,C语言基础教学档案!编号零零五
- 2024-10-26 C语言void关键字的高级玩法,6个样例代码告诉你
- 1507℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 505℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 485℃MySQL service启动脚本浅析(r12笔记第59天)
- 465℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 462℃启用MySQL查询缓存(mysql8.0查询缓存)
- 443℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 422℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 418℃MySQL server PID file could not be found!失败
- 最近发表
-
- netty系列之:搭建HTTP上传文件服务器
- 让deepseek教我将deepseek接入word
- 前端大文件分片上传断点续传(前端大文件分片上传断点续传怎么操作)
- POST 为什么会发送两次请求?(post+为什么会发送两次请求?怎么回答)
- Jmeter之HTTP请求与响应(jmeter运行http请求没反应)
- WAF-Bypass之SQL注入绕过思路总结
- 用户疯狂点击上传按钮,如何确保只有一个上传任务在执行?
- 二 计算机网络 前端学习 物理层 链路层 网络层 传输层 应用层 HTTP
- HTTP请求的完全过程(http请求的基本过程)
- dart系列之:浏览器中的舞者,用dart发送HTTP请求
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)