【C语言C++编程学习笔记】基础语法,第一个简单的实例编程入门教程!
C语言/C++编程学习:一个简单的实例
让我们来看一个简单的C语言程序。从下面的程序可以看出编写C语言程序的一些基本特征。
如果你能知道该程序将会在显示器上显示一些内容,那说明你还是知道一些的!
确实如此,但所要显示的确切内容不是显而易见的,所以请运行程序来观看结果。
首先,用你熟悉的编辑器建立一个上面这个样的程序,然后给这个程序取一个名字,并以 .c 作为结尾以满足所在系统对文件名格式的要求。
例如,你可以把它命名为 helloworld.c。 现在编译并运行该程序 。
如果一切运行正常,其显示结果为:
实例简单说明
◆ #include ←包含另一个文件
这是程序的第一行。它的作用相当于你在文件中的这行所在的位置键入了文件 stdio.h 的完整内容。实际上,它是一种剪切和粘贴操作,这样可以方便地在多个程序间共享公用的信息。
#include 语句是 C预处理指令 的一个例子。通常,C 编译器在编译前要对源代码做一些准备工作;这称为预处理。
stdio.h 文件作为所有 C编译包的一部分提供,它包含了有关输出输入函数的信息以供编译器使用。这个名字代表标准输入输出头文件。我们称之为头文件,C语言中通常都带有许多头文件。
◆ int main () ← 函数名
接下来的这行代码声明了一个 main函数。一个 C语言程序总是从称为 main()的函数开始执行的。
你可以对你所用的其他函数任意命名,但是 main()必须是开始的函数,所以说,main()函数在程序中是唯一的。
那么圆括号的功能呢?它们表明 main()是一个函数。以后你将了解到更多的函数。但现在,请你记住这个函数是 C程序的基本模块。
int 指明了 main()函数的返回类型。这意味着 main()函数返回值的类型是整数。返回到哪里呢?返回给操作系统。
如果浏览老版本的 C代码,你将发现程序常常以:
main()
这种形式开始。C90标准勉强允许这种形式,但是 C99标准不允许。因此即使你当前的编译器允许,也不要这么做,请注意规范。
◆ /* 一个简单的 C程序 */ ←注释
包含在 /* */ 之间的部分是程序注释。使用注释的目的是使自己和他人更容易理解你的程序。
C语言的注释的一个好处就是可以被放在任意的地方,甚至是和它要解释的语句在同一行。
一个较长的注释可以单放一行,或者是多行。在/* 和 */之间的所有内容都会被编译器忽略掉。下面是一些正确和不正确的注释形式:
也可以这样写:
C99 增加了另一种风格的注释,它被普遍用在 C++ 和 Java里。这种新形式使用 // 符号,但这种注释被限制在一行里:
因为一行的结尾就标志着注释的结束,所以这种形式只在注释的开始处需要标志符号。
{ ← 函数体的开始 } ← 函数体的结束
{
...
}
在前面的程序中,花括号划定了 main函数的界线。通常,所有的 C语言函数都使用花括号来表示函数体的开始与结束。它们的存在是必不可少的,因此不能丢掉它们。仅有花括号 { } 能起到这种作用,小括号()和中括号 [ ] 都是不可以的。
花括号还可以用来把函数中的语句聚集到一个单元或代码块中。
◆ int num; ---声明语句
这个语句表明你将使用 num 这个变量,并且它是 int(整数)类型的。
程序中的这一行叫做声明语句 。该声明语句是 C语言中最重要的功能之一。在 C语言中,所有变量都必须在使用之前定义。
这句声明表达了两个意思:
第一,在函数中你有一个名为 num 的变量。
第二,int说明 num 是一个整数,也就是说这个数没有小数点或者小数部分。编译器使用这个信息为变量 num在内存中分配一个合适的存储空间。句末的;指明了这一行是 C语言的一个语句或指令。每条语句后面都需要写上;。
单词 int 是 C语言的一个关键字,它代表 C中最基本的一个数据类型。关键字是用来表达语言的单词,你不能将它们用于其他目的。例如,不能把 int 用作一个函数或者是变量的名字。
◆ num = 1; ←赋值语句
这行程序是一个赋值语句。赋值语句是 C语言的基本操作之一。这个特殊的例子的意思是“把数值1赋给变量 num”。可以简单理解为把1给了num,那么num就是1了。注意赋值语句赋值的顺序是从右到左。同样,该语句也用;结束语句。
◆ printf ("hello world!"); ←一个函数调用语句
printf ("hello world! ");
printf ("这是我学习C语言的第%d天! ",num);
上面两句话都使用了 C语言的一个标准函数:printf();。圆括号表明 printf 是一个函数名,程序将识别 “ ” 之间的内容并把它们显示在屏幕上。
结果显示的结果应该为:
那么引号中有字符 ,但并没有输出它们!发生了什么事情呢? 字符代表一个称为换行符的字符,它意味着“在下一行的最左边开始新的一行”。
换行符是转义字符的一个例子。转义字符通常用于代表难于表达的或是无法键入的字符。其他的例子比如 代表 Tab键, 代表退格键盘。每个转义字符都用斜线字符()开始。
另外,输出最后一行时 %d 起什么作用?回忆一下,这一行的输出结果是:
这是我学习C语言的第1天!
当这一行输出时,数字1被符号组合%d代替了,而1是变量 num的值。%d是一个占位符,其作用是指出输出 num 值的位置。简单来说 就是把%d用这行语句后面的num替换。
◆ return 0; --- 返回语句
return 语句也叫返回语句,它是程序的最后一个语句。在 int main()中 int 表示 main()函数的返回值应该是一个整数。
C标准要求 main()这样做。带有返回值的 C语言函数要使用一个 return 语句,该语句包括关键字 return,后面紧跟着要返回的值,然后是一个分号。
对于 main()函数来说,如果你漏掉了 return语句,则大多数编译器将对你的疏忽提出警告,但仍将编译该程序。此时,你可以暂时把 main()中的 return语句看作是保持逻辑连贯性所需的内容。
今天的学习就到此为止,希望你能有所收获!
学C/C++不易,此路应携手前行。
欢迎关注我的编程公众號【草莓味狸猫】!
如果你想跟着小编一起学编程的话!
可以来我的C语言C++编程学习基地【搜索进入】!
↓☆↓
还有(源码,零基础教程,项目实战教学视频)!
【C语言C++编程学习笔记】基础语法,第一个简单的实例编程入门教程!的更多相关文章
- JavaScript学习笔记-基础语法、类型、变量
基础语法.类型.变量 非数字值的判断方法:(因为Infinity和NaN他们不等于任何值,包括自身) 1.用x != x ,当x为NaN时才返回true; 2.用isNaN(x) ,当x为NaN或 ...
- Shell高级编程学习笔记(基础篇)
目录 1.shell脚本的执行方法 2.shell的变量类型 3.shell特殊变量 4.变量子串的常用操作 5.批量修改文件名实践 6.变量替换 7.在shell中计算字符串长度的方法 ...
- Java学习笔记-基础语法
Java基础包含关键字,标识符,注释,常量和变量,运算符 关键字 关键字的定义和特点 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有字母都为小写 Java的关键字 用于定义数据类型的关键 ...
- Python学习笔记——基础语法篇
一.Python初识(IDE环境及基本语法,Spyder快捷方式) Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,没有编译过程,可移植,可嵌入,可扩展. IDE 1.检查Pyth ...
- Arduino—学习笔记—基础语法
图解 函数具体讲解 pinMode(工作接脚,模式) 工作接脚 工作接脚编号(0--13与A0--A5) 模式 工作模式:INPUT或OUTPUT 例子 将8接口设置为输出模式 pinMode(8,O ...
- Java学习笔记-基础语法Ⅴ
学习一些Java常用的API Math:包含执行基本数字运算的方法 如果没有构造方法,一般类的成员都是静态的,通过类名可以直接调用 Java中有两种random函数,Math.Random()函数能够 ...
- Java学习笔记-基础语法Ⅳ
多态:同一个对象,在不同时刻表现出来的不同形态 例如: 猫 cat = new 猫(); 动物 animal = new 猫(); 这里的猫在不同时刻表现出来不同的形态,这就是多态 多态的前提和体现: ...
- Java学习笔记-基础语法ⅩⅠ-UDP、TCP
网络编程 三要素:IP地址.端口.协议 IP地址:使用ipconfig查看,如果装了VM的话,会有VMnet1.VMnet8和WLAN,net1不能从虚拟机到主机,net8不能从主机到虚拟机,net0 ...
- Java学习笔记-基础语法Ⅹ-进程线程
学习快一个月了,现在学到了黑马Java教程的300集 打印流的特点: 只负责输出数据,不负责读取数据 有自己的特有方法 字节打印流:PrintStream,使用指定的文件名创建新的打印流 import ...
随机推荐
- Maven是什么? Maven的概念+作用+仓库的介绍+常用命令
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型.一组标准集合,一个依赖管理系统.和用来运行定义在生命周期阶段中插件目标和逻辑. 核心功能 Maven的核心 ...
- 部署zabbix监控服务器,部署主动监控
1.1部署服务运行环境 LNMP#yum -y install gcc pcre-devel zlib-devel openssl-devel #tar -zxvf nginx-1.12.2.ta ...
- Kubernetes K8S之Pod跨namespace名称空间访问Service服务
Kubernetes的两个Service(ServiceA.ServiceB)和对应的Pod(PodA.PodB)分别属于不同的namespace名称空间,现需要PodA和PodB跨namespace ...
- nmap端口扫描工具下载和安装使用
1.下载地址 https://nmap.org/download.html 2.下载之后进行安装 选择I Agree 后,建议全选,特别是zenmap,这个是图形化界面,不喜欢命令行格式的可以用zen ...
- [LeetCode]1083. 销售分析 II(Mysql,having+if)
题目 编写一个 SQL 查询,查询购买了 S8 手机却没有购买 iPhone 的买家. 题解 使用having + sum+if,而不是自查询. 代码 # Write your MySQL query ...
- [LeetCode] 279. 完全平方数(DP)
###题目 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n.你需要让组成和的完全平方数的个数最少. 示例 1: 输入: n = 12 输出: 3 解 ...
- [Java核心技术]五-继承(枚举类)
####Java枚举类型(enum) 枚举类型都是继承了Enum类(是一个抽象类)的一个类,我们可以向enum类中添加方法和变量等.编译再反编译可以看到枚举类型对应的类的内容. 每个枚举常量都对应一个 ...
- 1.9Hadoop插件
- 2019.7.12 sdfzoier做题统计
lixf_lixf :9 P1981 表达式求值 P1076 寻宝 P1199 三国游戏 P1308 统计单词数 P1190 接水问题 P1158 导弹拦截 P1070 道路游戏 P1069 细胞分裂 ...
- 解决pycharm py文件运行后停止按钮变成了灰色的问题