目录

一.修炼必备

二.重要结论一

三.重要结论二

!!!恭喜你,成功突破到练气六层!!!


一.修炼必备

1.入门必备:VS2019社区版,下载地址:Visual Studio 较旧的下载 - 2019、2017、2015 和以前的版本 (microsoft.com)

2.趁手武器:印象笔记/有道云笔记

3.修炼秘籍:牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网 (nowcoder.com)

4.雷劫必备:leetcode 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

注:遇到瓶颈怎么办?百度百科_全球领先的中文百科全书 (baidu.com)

二.重要结论一

1.#include <stdio.h>分析

#include <stdio.h>
#include "add.h"1)stdio:标准输入输出(standard input output)
2).h:表示头文件,这些头文件放在程序的开头
3)stdio.h:表示输入输出的头文件[scanf/printf函数需要包含此头文件]
4)#include:告诉预处理器把头文件的内容插入到预处理器命令的相应位导入头文件的预编译指令
5)<>:表示系统自带的库-->当查找头文件时先从系统中查找
6)"":表示用户自定义的库-->当查找头文件时先查找用户定义的库,若找不到,再查找系统的库

2.C语言中,分号是语句的结束符,每个语句必须是以分号结束的

#include <stdio.h>
int main()
{int a = 10;//以分号结尾double b = 20;//以分号结尾return 0;//以分号结尾
}

3.一个程序可以有多个函数,但是有且只有一个主函数main()

//子函数1
void print()
{}//子函数2
void get()
{}int main()
{//两个子函数print();get();return 0;//因为返回了0这个值,需要使用int类型来进行接收返回的值
}

4.1)C语言标识符大小写敏感,即严格区分大小写,一般变量名使用小写,常量名使用大写

2)变量名且要有意义,“见名知意”

#include <stdio.h>
#define MAX 100 //常量名使用大写int main()
{int num = 10;//变量名使用小写int min = 0;int max = 1000;return 0;
}

5.char和unsigned char的比较

#include <stdio.h>int main()
{//1)char的值范围是-128-127,unsigned char的值范围是0-255char a = -10;unsigned char b = -10;printf("%d %d\n", a, b);//-10 246//由此可知,unsigned char赋值负数后,值会重新变成正数//2)两者皆占用1个字节的空间大小printf("%d\n", sizeof(char));//1printf("%d\n", sizeof(unsigned char));//1return 0;
}

6.两种类型的表达式

两种类型的表达式
1)左值:指向内存位置的表达式称为左值,左值可以出现在赋值号的左边或右边
2)右值:存储在内存中某些地址的数值,右值是不能对其进行赋值的表达式
3)右值可以出现在赋值号的右边,但不能出现在复制号的左边
4)当需要保存数据的时候,使用左值;需要读取数据的时候,使用右值

7.全局变量、局部变量的内存分布

1)全局变量存储在内存的静态区中,占用静态的存储单元

2)局部变量存储在内存的栈区中,只有在所占函数被占用时才会被动态分配内存

注:栈、堆、静态区详解

栈、堆、静态区详解
1)栈区:栈区的变量是编译器进行管理、自动分配和释放,存放函数调用过程中的各种参数、局部变量、返回值以及函数返回地址
2)堆区:用于程序动态申请分配和释放空间,C语言中的malloc、realloc、free等均是在堆中进行的,一般情况下,程序员申请的空间在使用结束后应该释放,若没有释放空间,则程序结束时系统自动回收
3)静态区:分为DATA段和BSS段。
DATA段(全局初始化区)释放存放初始化的全局变量和静态变量;
BSS段(全局未初始化区)存放未初始化的全局变量和静态变量,程序运行结束时自动释放
BBS段在程序执行之前会被系统自动清零,所以未初始化的全局变量和静态变量在程序执行之前已经为0。
#include <stdio.h>//全局变量:在{}外定义的变量
int num = 0;//num是全局变量//静态全局变量:在{}外使用static关键字修饰的变量
static int age = 18;int main()
{//局部变量:在{}内定义的变量int date = 12;//date是局部变量//静态局部变量:在{}内使用static关键字修饰的变量static int data = 12;return 0;
}

8.const和#define

1)const:定义的变量不是常量,定义这个变量的值是不可修改的常变量,带有类型,在编译运行时会进行类型检查

2)#define:定义的是不带类型的常数,只会进行简单字符替换,在预编译的时候起作用,不会进行类型检查

#include <stdio.h>//2)#define:定义不带类型的常数,定义的常数在预编译阶段进行字符替换,不存在编译阶段的类型检查
#define MAX 1000int main()
{//1)const:定义的是变量不是常量,定义的变量的值是不能改变,使用const修饰的变量称为常变量const int num = 10;//num = 20;//使用const修饰后的变量不可改变其值return 0;
}

9.const和#define的区别

1.编译器处理方式不同1)#define是宏在预处理阶段展开2)const是在编译运行阶段进行使用
2.类型和安全检查不同1)#define是宏定义,没有任何类型,不做任何的类型检查,仅仅是展开宏定义2)const修饰的常变量有具体的类型,在编译阶段会进行类型检查
3.存储方式不同1)#define宏仅仅展开,有多少次宏就会展开多少次,不会占用内存2)const修饰的常变量会在分配内存3)(宏定义不分配内存,变量定义分配内存)4)宏替换只做替换,不做就算,不做表达式求解

三.重要结论二

1.extern关键字的使用:全局变量的引用

注:全局变量具有外部链接属性,任意c文件均可使用extern关键字进行引用

2.%(取模运算符)

1)取余运算符(%)只能用于整数,%的两边只能是整数,出现小数编译器会报错

2)%左边是正数,余数也是正数;%左边是负数,余数也是负数

#include <stdio.h>int main()
{//1)取余运算符(% )只能用于整数,% 的两边只能是整数,出现小数编译器会报错int a = 10;//double b = 3.0;int res = 0;//res = a % b;//报错,%只能使用在整数之间//% 左边是正数,余数也是正数res = -10 % 3;printf("%d\n", res);//-1res = -10 % -3;printf("%d\n", res);//-1//% 左边是负数,余数也是负数res = 10 % -3;printf("%d\n", res);//1res = 10 % 3;printf("%d\n", res);//1return 0;
}

3.在任何要进行判断的表达式中,任何非零和非空的值为真,零和空为假

#include <stdio.h>int main()
{int a = 0;int b = 1;int* p = NULL;//p为nullif (p){printf("hehe\n");}//a为0if (a){printf("haha\n");}//b为1:为真if (b){printf("hihi\n");}return 0;
}

4.全局变量、局部变量、静态局部变量、静态全局变量的区别

全局变量、局部变量、静态局部变量、静态全局变量的区别1.全局变量———— 在{}外部定义的变量,全局变量具有外部链接属性,在定义的全局变量中,任意一个源文件均可引用此全局变量2.局部变量———— 在{}内部定义的变量,局部变量只在函数执行期间存在,函数的调用结束后,局部变量所占的内存被收回3.静态全局变量———— 在{}外部使用static关键字修饰的变量,使用static修饰后,全局变量的外部链接属性变为内部链接属性,只能在本文件内可以访问4.静态局部变量———— 在{}内部使用static关键字修饰的变量,使用static修饰后,静态局部变量只会被初始化一次,它随着程序的结束而结束,局部变量的声明周期变长,静态局部变量只对定义自己的函数体始终可见5.全局变量、静态全局变量、静态局部变量都在静态存储区中分配内存,局部变量在栈中分配内存空间
#include <stdio.h>//全局变量:在{}外定义的变量,在静态区中分配内存空间
int data = 20;//全局变量//静态全局变量:使全局变量的外部链接属性变成内部链接属性,使只能在本文件内使用
static int n = 40;//全局变量int main()
{//局部变量:在{}内定义,栈中分配内存空间int num = 10;//num是局部变量//静态局部变量:只初始化一次,局部变量的生命周期变长,静态局部变量只对自己所在的{}可见static int age = 18;//静态局部变量return 0;
}

!!!恭喜你,成功突破到练气六层!!!

练气六层 —— 重要知识点总结相关推荐

  1. 算法修炼之练气篇——练气九层

    博主:命运之光 专栏:算法修炼之练气篇 前言:每天练习五道题,炼气篇大概会练习200道题左右,题目有C语言网上的题,也有洛谷上面的题,题目简单适合新手入门.(代码都是命运之光自己写的,练完这200多道 ...

  2. 算法修炼之练气篇——练气十九层

    博主:命运之光 专栏:算法修炼之练气篇 前言:每天练习五道题,炼气篇大概会练习200道题左右,题目有C语言网上的题,也有洛谷上面的题,题目简单适合新手入门.(代码都是命运之光自己写的,练完这200多道 ...

  3. MyBatis学习从练气到化虚

    MyBatis从练气到化虚 一.MyBatis的由来 1.什么是ORM 2.iBatis的由来 3.为什么选择Mybatis 二.MyBatis的基本使用 1.准备数据库 2.创建工程,增加实体类 3 ...

  4. 仙道录 第一卷 天道门 第八章 练气诀

    从"绝峰谷"回来的路上,封旭就一直很是不解,刚才发生的一切有些恍然,跟本不知道吕师祖到底要干什么,而且还突然说有可能收自己做他的徒弟,虽然他只是大长老半个徒弟,但是听孔智师兄说不是 ...

  5. [练气期]计算机视觉之从矩阵本质修炼图像几何变换秘籍

    [练气期]计算机视觉之从矩阵本质修炼图像几何变换秘籍 练气期,我们需要掌握哪些图像处理知识? 掌握OpenCV和图像处理的基础知识,并进行实践操作,具体包含: 为什么选择OpenCV,OpenCV是什 ...

  6. Java修真之练气筑基篇(持续更新)

    文章目录 前言 Java基础 1.1注释.标识符.关键字 注释 关键字 标识符 1.2数据类型 1.2.1强弱类型语言 强类型语言 弱类型语言 1.2.2 数据类型 类型转换 自动类型转换 强制类型转 ...

  7. 六层PCB板是怎么拼出来的?

    本篇文章主要分享六层PCB板是怎么拼出来的,目录和结构如下: PCB基础框架 PCB材料组成 PCB叠层设计 PCB阻抗计算 总结 整篇文章阅读预计10分钟. 1. PCB基础框架 基于目前对高速PC ...

  8. OSI第六层:表示层功能作用

    原文链接:http://www.hcie.me/200 OSI七层模型第六层:表示层,Presentation Layer OSI表示层功能:电脑从网卡收到一串数据时,这些数据在电脑中都是都是二进制的 ...

  9. 六层感知神经网络系统

    人的大脑主要结构如图 人的大脑皮层主要分为六层,脑电波有四种, 所以推测人脑是通过六个维度递增模型组成, 什么是六个维度递增模型 如下图(假设输入输出一致) 第一种 最长的模型层数 是第二长的两倍,依 ...

最新文章

  1. 论坛报名 | AI赋能未来交通
  2. 转载:JavaScript 的55个经典技巧
  3. python的工作方向-python工作方向,发展方向?
  4. 数据存储和云安全是选择云服务的关键
  5. 漫画讲解HDFS原理
  6. Go语言与数据库开发:01-09
  7. 重新想象 Windows 8.1 Store Apps (85) - 警报通知(闹钟), Tile 的新特性
  8. 高级版本VS打开低版本VS工程,无法调试的问题
  9. MAMP 无法启动Mysql,错误信息Can't start server : Bind on unix socket: Address already in use...
  10. mysql中rm+-f_Mysql命令大全
  11. 【百度分享】javascript中函数调用过程中的this .
  12. 【全部译文】Deep-Waveform: A Learned OFDM Receiver Based on Deep Complex Convolutional Networks
  13. 嵌入式 Web Server 温度检测系统
  14. 为什么 scala无法导入 scala.actors.Actor
  15. Win系统 - 电脑一直停在正在关机的界面怎么办?
  16. Echarts世界地图汉化及其数据包
  17. EBS 分配指定快码维护权限
  18. Docker容器网络实例管理
  19. Linux C++ 网络库 Muduo
  20. html中文段落,HTML段落的功能

热门文章

  1. Unity学习笔记:Tilemap的基础使用【By Chutianbo】
  2. 在 Amazon SageMaker 上玩转 Stable Diffusion: 基于 Dreambooth 的模型微调
  3. Unity3D开发之----将预设体Prefab压缩成AssetBundle文件
  4. SCRM升级--企业微信数字营销解决方案
  5. qt5把qt_zh_CN.qm加载了,但QTextEdit的右键菜单仍然是英文,而QLineEdit的倒是中文。怎样设置使得QTextEdit的右键菜单是中文
  6. 自制android摇一摇闹钟,摇一摇闹钟
  7. git服务器更换IP地址后本地仓库设置
  8. HbuilderX表格练习2
  9. 腾讯云国外服务器2核4G服务器新用户全攻略
  10. CSDN蓝桥杯算法题——题解Java版本——切面条