[C初阶笔记]P2

Git

1、Git是Linus为了帮助管理Linux内核开发 而开发的一个开放源码的分布式版本控制软件

2、Git和TortoiseGit的作用。

  • Git中有各种命令行操作,来维护代码,可以将代码推送到代码托管平台。

  • TortoiseGit是将Git中各自命令行操作转化为图形化操作。

3、Git的维护操作

  • add添加,commit提交,push推送

  • 将gitee中的仓库克隆到本地后,在本地仓库中右击鼠标才会出现add。

  • 修改已经提交过的文件,文件图标会有红色标识,此时无需add(新增文件才需要add),直接commit和push。

  • delete删除,commit提交,push推送

《并没有完全了解各个操作的具体作用,不要乱猜测,直接查找正确的解释》

4、注意

  • gitee没有绿方块:gitee网站的邮箱和本地的邮箱不匹配,本地邮箱在小乌龟设置中修改。

  • gitee上的邮箱要公开

  • 用户名或密码错误:将本地仓库里的用户和密码删除,删除windows的凭据管理器中的gitee的凭据。

  • 用户名:gitee网站中@后面的就是用户名

  • 不要将仓库克隆到Git的安装路径下

常量

字面常量

字面常量的作用:用于给变量赋值

  • 整型常量(20)

  • 浮点型常量(3.14159)

  • 字符常量('a')

  • 字符串常量("abcdef")

const修饰的常变量

1、被const修饰的变量在语法层面上不能被修改,本质上其实还是变量。

const int n=10;
int arr[n];//C99标准中该写法为错误
  • C90标准,数组指定数组元素个数时,[]内必须是常量表达式,被const修饰的n本质还是变量,不能写在里面。

  • C99标准,支持变长数组,定义数组时[]内可以写变量。

2、const的作用:手动控制变量的值不被修改。

#define定义的标识符常量

1、被定义的文本是整数的时候,就可以把标识符常量放到数组的[]中。

#define M 100
int arr[M];
  • 这里的M就是标识符常量

  • .c源文件>预编译>编译>汇编>链接>运行.exe

  • #define预处理指令(又称为宏定义)在预编译(预处理)时,会将M替换成100.。

  • 预处理指令通常写在函数外(写在函数里面没有语法错误),但必须遵循先定义后使用。

  • #include也是预处理指令

枚举常量

enum Sex//使用enum定义枚举类型
{
  MALE,
  FEMALE,
  SECRET
};
​
int main()
{
    enum Sex a=MALE;//定义a为枚举变量,并且初始化为MALE。
    printf("%d %d %d",MALE,FEMALE,SECRET);//0 1 2
    return 0;
}

枚举类型Sex 枚举变量a 枚举常量MALE

1、枚举类型是自定义类型,这种类型定义的变量,其可能值是多个枚举常量中的一个。

2、枚举常量也是有具体值的,默认第一个枚举常量值为0,后面的枚举常量值依次+1。

3、枚举常量在枚举类型定义时可以赋初值,其他地方不能重新给枚举常量重新赋值。

4、常量名建议全部大写,包括枚举常量。

5、枚举类型定义时,最后一个枚举常量后不需要逗号。

字符串

1、C语言有字符类型,没有字符串类型。

2、字符串的表示方式:由双引号引起来的一串字符。

3、双引号括起来的字符串尾部默认跟一个转义字符'\0',它是字符串的结束标志,不作为字符串内容。

//以下两个数组存储内容一样
char arr[]={'a','b','c',0};
char arr[]={'a','b','c','\0'};

空字符'\0'的ASCII码值是0

字符'0'的ASCII码值是48

4、字符串赋值给数组时,要记得给数组足够空间存放'\0',不然打印字符串没有'\0'终止打印,使用printf打印字符粗时就无法停止,后面就会乱码。

数组的内存是在连续的内存空间中的一小段,超过数组空间范围,会一直打印后面未知的数据,直到打印遇到'\0'才停止。

//将字符串abc存入数组
char arr1[]="abc";//正确
char arr2[]={'a','b','c'};//错误
  • arr1的大小是4字节,arr2的大小是3字节。

  • 定义数组时,未指定数组大小,数组的大小由初始化的内容决定。

5、strlen()函数求字符串长度,计算的是'\0'之前出现字符的个数。

#include<string.h>

6、字符串的地址

char * p = "abcd";

指针变量p指向首字符的地址

 

转义字符

1、反斜杠\后面加字符,来表示那些不能显示的ASCII字符

\0:终止符、空字符

\t:水平制表符,四个空格。

\n:换行符

\a:警告字符、蜂鸣

\b:将光标向左退回一格,如果继续输出内容会把光标右边的内容覆盖。

\r:回车,光标回到这行的首部。

\?:代替 ? 有些编译器中打印 ??) 时,会被解析为 ]。打印 ??( 时,会被解析为 [ 。

\':代替 '

\":代替 "

\\:代替 \

\***:这种格式说明它表示八进制的ASCII码值对应字符。(范围:0~261)

\x**:这种格式说明它表示十六进制的ASCII码值对应字符。(x必须小写,范围:0~7F)

'/'称为斜杆,'\'称为反斜杆。

联想记忆:顺应右手手势的就是斜杆。

2、题目

printf("%d\n", strlen("c:\test\628\test.c"));

结果为14,\62被解析成一个转义字符。

ASCII

1、ASCII码表

 

2、

int a = 'A';
printf("%c",a);
  • 打印结果为A

  • 字符底层存储的时候用的是字符的ASCII码值,所以可以用整型变量储存字符常量。

 

进制转换

1、其他进制>>十进制 

 

  • 这里以八进制数为例,对于其他进制(包括十进制)方式一样。

  • 这种方式能一次性转换整数部分小数部分

  • 这里的8的次方表示对应位置的权重

2、十进制>>其他进制

整数部分转换:用除法

 小数部分转换:用乘法

十进制小数转换成其他进制小数时,结果有可能是一个无限位的小数,所以在存储这类小数时无法精确存储。例如:0.51(十进制) >> 0.100000101000111101011100001010001111010111...(二进制)

 

3、二进制>>八进制

从低位向高位依次换算,高位不足补0.

二进制(1 110 111 100)>>八进制(1574)

4、八进制>>二进制

从低位向高位依次换算。

八进制(2743)>>二进制(101 111 100 011)

八进制/十六进制数的书写格式

1、数的前面加0表示是八进制数

 int a=010;

a的十进制为8

2、数的前面0x表示是十六进制数

 int b=0XA1;

b的十进制为161

 

注释方式

1、用于 解释代码或屏蔽代码

2、注释风格

//C++注释风格
/*C语言注释风格*/

3、C语言注释风格不支持嵌套,建议使用C++注释风格。

/*aaaaaaa/*aaaaaaaa*/aaaaaa*/ 

结构化的程序设计语言

1、C语言是结构化的程序设计语言,生活中所有的事情都可以由顺序结构、选择结构、循环结构组成。

函数

1、函数之间可以调用,但不能嵌套定义。

2、函数之间通过参数传递信息。

3、A文件定义的函数,在B文件声明一下或者包含一下A文件就可以用。

全局变量和函数都有外部连接属性,在其他文件中用extern声明之后就能使用他们。

4、函数的声明如果写在调用之前,定义写在哪都可以。

函数的声明重点在于函数名和参数类型,不关注有没有参数名或者参数名取什么名。

5、形参是在函数调用的时候才会开辟内存空间。

6、main函数的返回值表示程序的退出状态。返回0则程序正常退出,返回其它数字的含义由系统决定,通常返回非0代表程序异常退出。

数组

1、存储一组相同类型的元素。

2、定义数组时,会用到操作符[],其操作数是数组名和元素个数。

3、数组的类型包括数组元素的类型数组元素的个数

3、定义数组并初始化,可以不指定数组大小。

7、C99标准中,变长数组不能进行初始化。

8、数组不完全初始化时,未赋值的部分默认为空字符'\0'。

9、全局变量不初始化的话,它的值为0(指针则为NULL)。局部变量不初始化的话,它的值是随机值(与编译器有关)。

被static修饰的变量不初始化时默认为0,静态区的变量不初始化都为0。

10、打印数组中的所有元素,最好的方法是通过循环去打印。

11、C90标准中,数组定义时指定数组元素个数,[]内必须是常量表达式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/77024.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言好题解析(一)

目录 选择题1选择题2选择题3选择题4编程题一 选择题1 执行下面程序&#xff0c;正确的输出是&#xff08; &#xff09;int x 5, y 7; void swap() {int z;z x;x y;y z; } int main() {int x 3, y 8;swap();printf("%d,%d\n",x, y);return 0; }A: 5,7 B: …

Threejs学习03——实现随机多个三角形随机位置随机颜色展示效果

实现随机多个三角形随机位置随机颜色展示效果 这是一个非常简单基础的threejs的学习应用&#xff01;本节主要介绍的是随机&#xff0c;随机位置以及随机颜色&#xff0c;我们使用的物体是三角形&#xff0c;通过一个三角形三个顶点每一个顶点通过xyz坐标来确定&#xff0c;则…

Java算法_ 检查对称树(LeetCode_Hot100)

题目描述&#xff1a;给你一个二叉树的根节点 &#xff0c; 检查它是否轴对称。root 获得更多&#xff1f;算法思路:代码文档&#xff0c;算法解析的私得。 运行效果 完整代码 /*** 2 * Author: LJJ* 3 * Date: 2023/8/17 8:47* 4*/ public class SymmetricTree {static class…

智慧水利利用4G物联网技术实现远程监测、控制、管理

智慧水利工业路由器是集合数据采集、实时监控、远程管理的4G物联网通讯设备&#xff0c;能够让传统水利系统实现智能化的实时监控和远程管理。工业路由器利用4G无线网络技术&#xff0c;能够实时传输数据和终端信息&#xff0c;为水利系统的运维提供有效的支持。 智慧水利系统是…

Linux知识点 -- Linux多线程(一)

Linux知识点 – Linux多线程&#xff08;一&#xff09; 文章目录 Linux知识点 -- Linux多线程&#xff08;一&#xff09;一、理解线程1.从资源角度理解线程2.执行流3.多线程编程4.线程的资源5.线程切换的成本更低6.线程的优缺点7.线程异常 二、线程控制1.clone函数2.线程异常…

Unity如何把游戏导出成手机安装包

文章目录 前言使用环境步骤添加场景构建APK 前言 本文章主要演示了&#xff0c;如何将制作好的游戏&#xff0c;导出成APK&#xff0c;安装到手机上。 使用环境 Unity2022。 步骤 首先打开你的项目&#xff0c;然后选择菜单栏的“File” > “Build Settings…”&#xf…

时序预测 | MATLAB实现基于CNN-BiLSTM卷积双向长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价)

时序预测 | MATLAB实现基于CNN-BiLSTM卷积双向长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价) 目录 时序预测 | MATLAB实现基于CNN-BiLSTM卷积双向长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价)预测结果基本介绍程序设计参考资料 预测结果 基本介绍…

【使用 k 折叠交叉验证的卷积神经网络(CNN)】基于卷积神经网络的无特征EMG模式识别研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

使用GraphQL在Postman中进行API测试

GraphQL 是一种用于API的开源数据查询和操作语言&#xff0c;用于API的查询语言和运行时。它使客户端能够精确地指定其数据需求&#xff0c;并获得预测性地结果。GraphQL旨在提高API的效率、灵活性和可靠性。 Postman 是一款用于API开发的强大工具&#xff0c;它支持REST和Gra…

【LINUX相关】生成随机数(srand、/dev/random 和 /dev/urandom )

目录 一、问题背景二、修改方法2.1 修改种子2.2 使用linux中的 /dev/urandom 生成随机数 三、/dev/random 和 /dev/urandom 的原理3.1 参考连接3.2 重难点总结3.2.1 生成随机数的原理3.2.2 随机数生成器的结构3.2.3 二者的区别和选择 四、在代码的使用方法 一、问题背景 在一个…

直线导轨在视觉检测设备中的应用

随着科技的不断发展&#xff0c;视觉检测设备已经逐渐代替了传统的人工品检&#xff0c;成为了工业生产中的一部分&#xff0c;在五金配件、塑胶件、橡胶件、电子配件等检测工业零部件表面外观缺陷尺寸方面应用&#xff0c;视觉检测设备具有优势。 直线导轨作为视觉检测设备中重…

JAVASE---数组的定义与使用

数组的基本概念 什么是数组 数组是具有相同类型元素的集合&#xff0c;在内存中连续存储。 1. 数组中存放的元素其类型相同 2. 数组的空间是连在一起的 3. 每个空间有自己的编号&#xff0c;起始位置的编号为0&#xff0c;即数组的下标 数组的创建及初始化 数组的创建 T[…

LVS-DR模式

目录 1、概述 2、LVS-DR模式的工作原理&#xff1a; 3、在LVS-DR模式下&#xff0c;数据包的流向分析如下&#xff1a; 4、LVS-DR是一种用于构建高可用性负载均衡集群的技术模式。LVS-DR模式具有以下特点&#xff1a; 5、LVS-DR中的ARP问题 6、配置LVS-DR需要以下几个关键…

CS5263替代停产IT6561连接DP转HDMI音视频转换器ASL 集睿致远CS5263设计电路原理图

ASL集睿致远CS5263是一款DP1.4到HDMI2.0b转换器芯片&#xff0c;设计用于将DP1.4源连接到HDMI2.0b接收器。 CS5263功能特性&#xff1a; DP接口包括4条主通道、辅助通道和HPD信号。接收器支持每通道5.4Gbps&#xff08;HBR2&#xff09;数据速率。DP接收机结合了HDCP1.4和HDCP…

每天一道leetcode:797. 所有可能的路径(图论中等深度优先遍历)

今日份题目&#xff1a; 给你一个有 n 个节点的 有向无环图&#xff08;DAG&#xff09;&#xff0c;请你找出所有从节点 0 到节点 n-1 的路径并输出&#xff08;不要求按特定顺序&#xff09; graph[i] 是一个从节点 i 可以访问的所有节点的列表&#xff08;即从节点 i 到节…

黑客入侵:福特汽车Sync3车机存在漏洞,黑客入侵可抹除系统数据

据福特汽车公告&#xff0c;他们发现部分2021年至2022年车型的Sync3车机存在Wi-Fi漏洞&#xff0c;该漏洞可能被黑客利用来入侵并抹除车机内的系统数据。这一漏洞源于福特车系中采用的WL18xx MCP驱动程序的内存缓冲区溢位漏洞&#xff0c;其漏洞编号为CVE-2023-29468。 这一发现…

攻击LNMP架构Web应用

环境配置(centos7) 1.php56 php56-fpm //配置epel yum install epel-release rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm//安装php56&#xff0c;php56-fpm及其依赖 yum --enablereporemi install php56-php yum --enablereporemi install php…

构建智能医疗未来:人工智能在线上问诊系统开发中的应用

随着人工智能技术的飞速发展&#xff0c;医疗领域也正在逐步迎来一场革命性的变革。其中&#xff0c;人工智能在在线上问诊系统开发中的应用&#xff0c;正为医疗产业带来全新的可能性。本文将深入探讨如何利用代码构建智能医疗未来&#xff0c;以提升线上问诊系统的效率、准确…

AgentBench::AI Agent 是大模型的未来

最有想象力、最有前景的方向 “Agent 是 LLM(大语言模型)的最有前景的方向。一旦技术成熟,短则几个月,长则更久,它可能就会创造出超级个体。这解释了我们为何对开源模型和 Agent 兴奋,即便投产性不高,但是我们能想象自己有了 Agent 之后就可以没日没夜地以百倍效率做现在…

R语言ggplot2 | R语言绘制物种组成面积图(三)

&#x1f4cb;文章目录 面积图简介准备数据集加载数据集数据处理数据可视化 利用R语言绘制物种组成图。本文以堆叠面积图的方式与大家分享。 面积图简介 面积图又叫区域图。它是在折线图的基础之上形成的, 它将折线图中折线与自变量坐标轴之间的区域使用颜色或者纹理填充&…