IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 最最最详细的C语言教程笔记零起步(2)小白必备 同笔者一起学习 -> 正文阅读

[C++知识库]最最最详细的C语言教程笔记零起步(2)小白必备 同笔者一起学习

四.基本的C语言语法知识

1.主函数

int main  //这是主函数
{
    return 0//  主函数返回值
}

main 翻译成中文是主要的、最重要的意思,而在C语言里面表示一个主函数。

// 双斜杠后面的为 注释

一般来说,注释用于标注这段代码的用途或解释思路等。因为注释不会被当做代码进行编译,所以无论 添加什么注释内容,都不会对代码的实际运行产生任何影响。

如上代码中,用注释标出了哪里为 主函数 ,哪里是函数的 返回值 。

2.什么是函数?

在编程语言里面,可以把函数看做一个圆圈,这个圆圈有如下几个特性:

  1. 开始执行时,函数可以被输入一些值
  2. 执行过程中,函数可以做一些事情
  3. 执行完成后,函数可以返回一些值
输入值
做点什么
返回值
#include <stdio.h>  
int main()   
{
   printf("Hello World\n");
   return 0;
}

请添加图片描述

  1. 主函数什么都没有输入
  2. 主函数打印了一行字到屏幕上
  3. 主函数返回了0

int 表明了函数的返回值类型为 整数类型, int 是 integer(整数) 的缩写。这是由语言标准规定的,不可以写成别的单词。
main函数名 , main 后面的括号 () 内为输入参数,目前为空。
return 后跟函数的返回值 ,为0。而0是一个整数,和函数名前面的 int 对应。

总结一下函数的写法公式:

函数返回值类型 函数名(函数输入参数值) { 做点什么事情 return 函数返回值; }

函数返回值类型 函数名(函数输入参数值)
{ 做点什么事情 ;
return 函数返回值;
}

被花括号{}包括的被称为 函数体 ,注意函数体一定要被花括号包括且不可省略。花括号上面的函数名、函数参数及返回值被称作 函数头

3.写一个自己的函数

根据上面的函数写法公式,写一个两个整数加法的函数。

自定义函数的函数名可以按照自己的喜好来写,就算写成aaaaa也行。不过,为了函数名拥有语义化,方便人阅读理解,我们一般使用 英文 来作为函数名。

// 这一段代码被称之为add函数的函数定义
int add(int a,int b)
{
  return a + b;
}

这一段代码被称之为add函数的函数定义

4.主函数是整个C语言程序的入口

上面已经定义好了一个 add函数 ,那需要怎样来使用它呢? add函数 能直接运行嘛?

答案是不行的。

所有的C语言代码都有一个起始入口,而这个入口就是 主函数main 。进入了主函数以后,才能经由主函数来调用其他函数

这也意味着,每个C语言代码,只能有且只有一个main函数

把代码稍微修改,现在代码如下。

#include <stdio.h>  
int add(int a, int b)
{
     return a + b;
}

int main()
{
    int result;
    result = add(2, 3);
    printf("%d", result);
    return 0;
}

当程序运行时,首先会进入 主函数main 。接着调用我们刚刚编写的 add函数 了。我们传了2个值分别是整数23给 add函数 。
函数的定义中规定了需要传ab2个参数,我们调用的时候,也必须传2个,并且类型也需要尽量一致,否则编译可能会报错。(若类型不同,编译器会尝试自动类型转换。自动类型转换失败则会编译失败。)
请添加图片描述
主函数在程序开始的时候被自动调用,不需要在程序内主动调用主函数。 而主函数的返回值会返回给调用这个程序的程序。 C语言标准中规定主函数有返回值且必须是 int 。如果程序正常结束,一般将返回值设置为0。

5.要调用函数,必须先知道函数

编译器会从代码开始,按照从上往下的顺序阅读代码

编译器首先看到了一个函数的定义,描述了一个叫 add 的函数。接着,在 main 中需要使用 add ,由于 编译器已经知道了 add 的定义,因此编译器可以正常编译通过。

但是,如果将函数定义和函数调用反过来呢?
在这里插入图片描述
编译错误
首先,编译器看到了 add 这个名称,编译器会很疑惑, add 是什么呢?编译器无法理解 add 究竟是什么。因此,编译器将报错,并停止编译。

6.什么是变量?

#include <stdio.h>  
int add(int a, int b)
{
     return a + b;
}

int main()
{
    int result;
    result = add(2, 3);
    printf("%d", result);
    return 0;
}

在 add函数 计算完毕之后,需要有一个东西来接受 add 返回回来的值。所以,我们在 add 前面声明了一 个 int整型 的 变量
什么是变量呢?你可以把它看做一个空箱子,里面可以装任何其他的和它类型一致的值。
result 只是我给它起的一个名字,当然,可以任意起名。比如叫he,叫xiangzi,都可以。

我们把 add 返回回来的5,装进了 result 。因此, result 里面装着的值是5了。

= 等号,在C语言中是赋值运算符,它有把右边的值装进左边变量的功能。这里的等号和数学里面的等号,也是有很大不同的,它并不是相等的意思

赋值运算符:将符号右边的值,装进左边的变量的一种运算符。

下图就是 add函数 接受2,3为输入,返回5,被赋值号 = 赋值给 result 的流程了
请添加图片描述
那我们能不能这样写呢?去掉 int result; 这一条。

int main()
{     
     result = add(2, 3);
     printf("%d", result);
     return 0;
}

答案是不行的,

变量必须先声明后使用

编译器看到 result 这个名称,但是从未见过 result 的定义时,肯定也会疑惑它究竟是个什么类型的变 量,甚至它有可能不是变量而是一个函数。这样,编译器只能遗憾得给出一个编译错误的提示,并结束 编译了。
int result;
必须像上面这样,声明有一个变量,名字叫 result ,类型是 int 整型。接下来,编辑器就能记下result 为一个 int 类型的变量。在后面的代码中,即可愉快地使用这个 result 变量了。

7.标识符

#include <stdio.h>  
int add(int a, int b)
{
     return a + b;
}

int main()
{
    int result;
    result = add(2, 3);
    printf("%d", result);
    return 0;
}

在前面的代码中,由我自己命名,用于指代某一个实体的名称,例如:add,result,函数的参数a,b 都是一个 标识符

标识符由我们自己命名的一个特殊标识,用于表示一个变量、函数或其他实体的名称。

例如前面 自定义函数取名为add 是为了清晰地表明函数意图。而将变量命名为result,也是为了表明变量内保存的是函数返回的结果。

并且,要让编译器能够识别标识符,必须进行声明或定义。例如,add被定义成了一个函数,result,
a,b被声明成了一个整数类型变量。如果编译器遇到未经定义或声明的标识符,将会无法理解这个标符具体是一个什么实体的名称而报错

在C语言中,标识符的可以按照你的喜好自己随意命名,但是必须遵循以下规则:

标识符可以用 小写字母大写字母数字下划线来命名。但是,标识符的第一个字符必须是字母或下 划线,而不是数字。并且,标识符区分大小写。

8.关键字

int是一个 标识符 吗?
答案是不是
首先int并不是我们随意命名的,其次int并不是任何实体的名称。 int是C语言中的一个 关键词

关键词 是在语言标准中规定的,并且在代码中有特殊意义和用途。因此,关键词不能作为一个标识符来使用

C语言中的关键词如下所示

在这里插入图片描述
百度一下

9.什么是字面常量?

那么,像2,3,这种数值,需不需要声明呢?

不需要,他们是 常量 ,无法被更改。并且一旦被写出来,就已经知道它们是整型int类型的常量了。
同样的,字符串字面常量 也不需要被声明,例如:" Hello World\n "。被双引号包裹的,我们认为它是一个 字符串,以区别于数值。

变量我们可以通过赋值来更改,常量不能更改,所以你不能对它进行赋值

2 = 3; //  错误
"Hello" = "World";  //  错误

10.printf 函数

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

现在,你应该明白了这段代码的大部分含义了。

再进一步,把它全部解析完

和 add 一样, printf 也是一个函数,但是这个并不是一个自定义函数,而是一个系统自带的函数
我们把字符串字面常量 “Hello World\n” 传给了 printf函数 。运行代码时,我们在屏幕上看到了这行字 符。显然, printf函数 的作用就是将字符串输出到控制台上了。

printf 由单词 print(打印) 和单词 format(格式) 的首字母 f 组成,意为格式化打印。

在早期,计算机的输出主要是靠连接打印机将字符打印在纸张上。而如今,计算机的输出大部分都在屏幕上实现。但是print这个词却被保留了下来。有时候我们会沿用打印这种说法,而实际上,我们是在屏幕上的控制台中输出字符。

printf函数更多用法

int main() 
{    
     int result;
     result = add(2, 3);
     printf("%d", result);
     return 0;
}

再次比较两段代码,写 Hello World 时只传了1个参数给 printf ,但为什么在 add函数 后却 能传2个给它呢?函数定义的参数个数和类型需要和函数调用时候的保持一致吗?

printf 是一个很特别的函数,它是一个 变参函数 ,所以可以接受可变数量和类型的输入参数。

这里我们无需太过关心怎样写一个可变参数函数,暂时只需要使用它即可。

通过如下示例,可以简单了解 printf函数 的更多用法:

用于打印一个整数:
printf("%d", 整型int);
printf("%d", 12345);
用于打印两个整数:
printf("%d\n %d\n", 整型int 1, 整型int 2);  // \n表示换行,就是从下一行开始再继续打印 
printf("A=%d\n B=%d\n", 123, 456);

总结一下 printf 的公式:

printf(“XXX占位1 XXX 占位2 XXX占位3”, 替换1, 替换2, 替换3);

printf 的第一个参数必须是字符串 ,这里传入了一个字符串字面常量 " "(被双引号包裹)。其中, 占位用 % 转换操作 表示。
例如:整型int的占位符为 %d 。后面的替换参数,会依次替换前面的占位。 printf 是一个变长参数函数,只要第一个字符串参数占位符写对了,后面可以加任意多的替换参数。
在这里插入图片描述
在这里插入图片描述

11.#include命令

printf函数 并不是我们定义的函数,而是系统自带的函数。

这个函数被写在文件 stdio.h 中,我们要使用 printf 就必须先让编译器理解 printf
假定 printf 的函数定义写在文件 stdio.h 中,用 #include 命令,可以将文件 stdio.h 的代码复制到我们的代码中。

TIPS:
stdio.h里面并未定义printf函数,但是它里面有printf函数的函数声明。但是,在当前阶段里面,可以理解为stdio.h里面,写了printf的函数定义

点个赞呗?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-22 14:29:00  更:2021-09-22 14:29:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 12:20:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计