【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 ...
随机推荐
- 2019UNCTF
Easyshellcode: 不说了,都是没有工具的血泪史,直接上exp: from pwn import * from numbers import * from ae64 import AE64 ...
- Java实现随机生成由字母、数字组合的N位随机数
通过Math.random函数生成所需的字符所有序列,通过判断当前字符是否属于大小写.数字,符合者加入数组内,直到数组存储N位为止,最后把当前数组转为字符串返回调用处. /** * 随机生成由数字.字 ...
- Ant Jmeter Jenkins生成html测试报告
Ant配置1. 将jmeter安装目录或者源码目录下\apache-jmeter-3.1\extras的ant-jmeter-1.1.1.jar复制到ant安装目录下apache-ant-1.10.3 ...
- graph attention network(ICLR2018)官方代码详解(tensorflow)-稀疏矩阵版
论文地址:https://arxiv.org/abs/1710.10903 代码地址: https://github.com/Diego999/pyGAT 之前非稀疏矩阵版的解读:https://ww ...
- LVM最佳实践
LVM逻辑卷管理器 LVM概念 在Linux中,逻辑卷管理器(Logical Volume Manager, LVM)是为Linux内核提供逻辑卷管理的设备映射器目标.大多数现代Linux发行版都能够 ...
- 文件操作和OS模块的简单操作
文件的作用 大家应该听说过一句话:“好记性不如烂笔头”. 不仅人的大脑会遗忘事情,计算机也会如此,比如一个程序在运行过程中用了九牛二虎之力终于计算出了结果,试想一下如果不把这些数据存放起来,相比重启电 ...
- python之os模块使用
python中os模块的常用语法 1.查看当前路径及路径下的目录 os.getcwd():返回当前路径(不包括文件名) os.listdir():返回当前路径下的所有目录列表. os.listdir( ...
- NSOperation类
NSOperation 抽象类 NSOperation 是一个"抽象类",不能直接使用 抽象类的用处是定义子类共有的属性和方法 在苹果的头文件中,有些抽象类和子类的定义是在同一个头 ...
- Kafka 【入门一篇文章就够了】
初识 Kafka 什么是 kafka Kafka 是由 Linkedin 公司开发的,它是一个分布式的,支持多分区.多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订 ...
- C# 中 Struct 和 Class 的区别总结
翻译自 Manju lata Yadav 2019年6月2日 的博文 <Difference Between Struct And Class In C#>,补充了一些内容和示例. 结构体 ...