[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 2return 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标准中,数组定义时指定数组元素个数,[]内必须是常量表达式。
相关文章:
[C初阶笔记]P2
Git 1、Git是Linus为了帮助管理Linux内核开发 而开发的一个开放源码的分布式版本控制软件。 2、Git和TortoiseGit的作用。 Git中有各种命令行操作,来维护代码,可以将代码推送到代码托管平台。 TortoiseGit是将Git中各自命令行操作转化为图形化操作。 …...
C++并发编程学习01——hello concurrent world
经典用例 #include <iostream> #include <thread>void hello() {std::cout << "hello concurrent world" << std::endl; }int main() {std::thread t(hello);t.join(); }编译 g -g test.cpp -o out -lpthreadgdb调试 (gdb) r Starting pr…...
大数据扫盲(2): 数据分析BI与ETL的紧密关系——ETL是成功BI的先决条件
着业务的发展每个企业都将产生越来越多的数据,然后这些数据本身并不能直接带来洞察力并产生业务价值。为了释放数据的潜力,数据分析BI(商业智能)成为了现代企业不可或缺的一部分。然而,在数据分析的背后,有…...
Java web 中的 jsp
JSP是什么 JSP是动态网页编程技术 JSP的四大作用域 1.page 表示在当前页面有效 2.request 表现在一次请求中有效 3.session 表示在一次会话中有效 4.application 表示在整个应用程序中有效 jsp内置对象是什么 在jsp开发中会频繁使用到一些对象,如果每次我们在jsp页面中需要…...
uniapp 数组操作
字符串转数组 let string "12345,56789" string.split(,) // [12345,56789] 数组转字符串 let array ["123","456"] array.join(",") // "123,456" 数组元素删除 let array [123,456] // 删除起始下标为1࿰…...
数据结构算法--4堆排序
堆排序过程: >建立堆(大根堆) >得到堆顶元素,为最大元素 >去掉堆顶,将堆最后一个元素放到堆顶,此时可通过一次调整使堆重新有序 >堆顶元素为第二大元素 >重复步骤3,直到堆变空 此时是建立堆后的大根堆模型 将…...
C++学习系列之DLL动态库使用
C学习系列之DLL动态库使用 啰嗦动态库的创建动态库的调用函数生成1.需要头文件函数定义(头文件)2.需要函数定义(函数文件)3.动态库中的头文件4.动态库中的主文件5.运行查看是否存在C#的调用的入口点6.C#调用 总结 啰嗦 项目需要&…...
Java实现钉钉企业内部应用机器和自定义机器人发送消息
前言 公司让写一个服务监控的功能,当监测到服务停止时,向钉钉群里推送报警信息。之前大概看到钉钉的开放平台的API文档,好像能群发消息的只有机器人。 钉钉开放平台目前提供三种机器人: 企业内部应用机器人 群模板机器人 自定义机器人 本来向用自己比较熟悉的自定义机器人…...
基于QT4的GPX文件编辑器开发
GPX文件是记录地理点的文件,本质是一种xml文件。GPX文件目前没有很好的编辑器,因此作者决定开发一款无需安装的绿色编辑器。 在QT4开发中,XML可以用DOM来实现,但其逻辑并不是很清晰。使用模型视图反而会更加可读。因此在开发中,使用model-view模式来实现数据读写。 1 需…...
树结构使用实例---实现数组和树结构的转换
文章目录 一、为什么要用树结构?二、使用步骤 1.引入相关json2.树结构的转换总结 一、为什么要用树结构? 本文将讲述一个实例,构造一棵树来实现数组和tree的转换,这在前端树结构中是经常遇到的 后端返回树结构方便管理ÿ…...
论文阅读_条件控制_ControlNet
name_en: Adding Conditional Control to Text-to-Image Diffusion Models name_ch: 向文本到图像的扩散模型添加条件控制 paper_addr: http://arxiv.org/abs/2302.05543 date_read: 2023-08-17 date_publish: 2023-02-10 tags: [‘图形图像’,‘大模型’,‘多模态’] author: …...
全链路数据湖开发治理解决方案2.0重磅升级,全面增强数据入湖、调度和治理能力
简介: 阿里云全链路数据湖开发治理解决方案能力持续升级,发布2.0版本。解决方案包含开源大数据平台E-MapReduce(EMR) , 一站式大数据数据开发治理平台DataWorks ,数据湖构建DLF,对象存储OSS等核心产品。支持EMR新版数据…...
【算法题】2769. 找出最大的可达成数字
题目: 给你两个整数 num 和 t 。 如果整数 x 可以在执行下述操作不超过 t 次的情况下变为与 num 相等,则称其为 可达成数字 : 每次操作将 x 的值增加或减少 1 ,同时可以选择将 num 的值增加或减少 1 。 返回所有可达成数字中的…...
023:vue中解决el-date-picker更改样式不生效问题
第023个 查看专栏目录: VUE ------ element UI 本文章目录 修改后的效果示例源代码(共52行)核心内容步骤:(1)更改样式(2)添加参数 专栏目标 在vue项目开发中,我们打算保持颜色的一致…...
爬虫借助代理会让网速快点吗?
亲爱的程序员朋友们,你曾经遇到过爬虫网速慢的情况吗?别着急!今天我将和你一起探讨一下使用代理是否可以加速爬虫,让我们一起进入这个轻松又专业的知识分享。 一、原因和机制的解析 1.IP限制 某些网站为了保护资源和防止爬虫行…...
探索智能文字识别:技术、应用与发展前景
探索智能文字识别:技术、应用与发展前景 前言一张图全览大赛作品解读随心记你不对我对小结 智能文字识别体系化解读图像预处理文字定位和分割文字区域识别图像校正字体识别和匹配结果后处理小结 如何应对复杂场景下挑战复杂场景应对方法小结 人才时代对人才要求合合…...
STL——list用法
一、list介绍 1、list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 2、list就是一个带头双向循环链表,list通常在任意位置进行插入、移除元素的执行效率更好。 3、list最大的缺陷是不支持任意位置的随机访问…...
Linux的基础指令
目录 1、ls指令 .和..意义 2、pwd指令 3、cd指令 ①cd ~ ②cd - 关于cd ..的用法 绝对路径和相对路径 4、touch指令 5、mkdir指令 tree指令 6、rmdir指令 7、rm指令 * 8、man指令 9、cp指令 nano: 10、mv指令 11、cat指令 12、more指令 13、less…...
深入浅出Pytorch函数——torch.nn.init.normal_
分类目录:《深入浅出Pytorch函数》总目录 相关文章: 深入浅出Pytorch函数——torch.nn.init.calculate_gain 深入浅出Pytorch函数——torch.nn.init.uniform_ 深入浅出Pytorch函数——torch.nn.init.normal_ 深入浅出Pytorch函数——torch.nn.init.c…...
Vue.js知识点学习的一点笔记
一、虚拟DOM 1、原生JS是命令式编程,当渲染在页面的数据发生一点点变化,需要整个重新渲染一编。vue.js渐进式框架有个虚拟DOM的概念,运用diff算法,比较新旧数据,相同的数据不变不重渲染,不同的部分新数据…...
Sui第四轮资助:16个团队瓜分
近日,Sui基金会公布了第四轮开发者资助名单,受助项目均是集中在DeFi、支付、基础设施、游戏、预言机等领域的Sui生态项目,他们是从2023年7月1日之前提交的申请中选出的。在此时间之后提交的任何项目目前正在审查中。 在前三轮资助中累积发放…...
ATC模型转换环境问题案例
ATC(Ascend Tensor Compiler)是异构计算架构CANN体系下的模型转换工具:它可以将开源框架的网络模型(如TensorFlow等)以及Ascend IR定义的单算子描述文件转换为昇腾AI处理器支持的离线模型;模型转换过程中&a…...
dart其他语法
dart其他语法 类型相关 空安全 不能将一个普通类型对象赋值为 null 避免 为空 报错:对 null 的使用语法进行限制(str ! null)对空安全的允诺 late 延迟初始化的时机 ! 在此时该可用变量一定不为空 void main() {String name zh…...
C++11并发与多线程笔记(7) 单例设计模式共享数据分析、解决,call_once
C11并发与多线程笔记(7) 单例设计模式共享数据分析、解决,call_once 1.设计模式2.单例设计模式:3.单例设计模式共享数据分析、解决4.std::call_once(): 1.设计模式 程序灵活,维护起来可能方便,…...
FANUC机器人加减速倍率指令ACC的使用方法说明
FANUC机器人加减速倍率指令ACC的使用方法说明 单位有一台FANUC机器人(型号:M-900iB 360kg),偶尔会在启动的瞬间会报SRVO-050碰撞检测报警,而事实上机器人并没有开始移动或和其他工件产生碰撞,一直查了很长时间,也没有查到具体的原因,也尝试过重新进行负载推算,但是偶尔…...
奥威BI数据可视化工具:360度呈现数据,告别枯燥表格
随着企业数据量的不断增加,如何有效地进行数据分析与决策变得越来越重要。奥威BI数据可视化工具作为一款强大的数据分析工具,在帮助企业深入挖掘数据价值方面具有显著优势。 奥威BI数据可视化工具是一款基于数据仓库技术的数据分析工具,具有…...
C# Linq源码分析之Take (三)
概要 本文在前两篇Take源码分析的基础上,着重分析Range参数中有倒数的情况,即分析TakeRangeFromEndIterator的源码实现。 源码及分析 TakeRangeFromEndIterator方法用于处理Range中的开始和结束索引存在倒数的情况。该方法位于Take.cs文件中。通过yie…...
Linux journalctl命令详解(journalctl指令)(systemd服务默认日志管理工具)
文章目录 Linux Journalctl命令详解1. Journalctl简介2. Journalctl基础使用3. 过滤日志条目4. 时间戳和日志轮转5. 高级应用6. journalctl --help指令文档英文中文 注意事项journal日志不会将程序输出的空行显示,日志会被压缩得满满当当。journal日志不会自动持久化…...
学习内容--
C后台开发_c做后台_人面桃花相映红的博客-CSDN博客 C/C后端开发学习路线总结(附带实习学习经历分享)_c后端开发需要学什么_Linux后台开发狮的博客-CSDN博客 学到什么程度才可以面试大厂?c/c后台开发进阶指南 后端开发(超全&…...
Stable Diffusion:使用自己的数据集微调训练LoRA模型
Stable Diffusion:使用自己的数据集微调训练LoRA模型 前言前提条件相关介绍微调训练LoRA模型下载kohya_ss项目安装kohya_ss项目运行kohya_ss项目准备数据集生成关键词模型参数设置预训练模型设置文件夹设置训练参数设置 开始训练LoRA模型TensorBoard查看训练情况 测…...
11号在线 网站开发/网站seo入门基础教程书籍
本文分别介绍桶排序、计数排序和基数排序三种排序算法,这三个算法有着共同的算法思想,下面分别介绍三种排序算法.桶排序桶排序(Bucket Sort)的原理很简单,它是将数组分到有限数量的桶子里。假设待排序的数组a中共有N个整数,并且已…...
wordpress 双模式/seo页面如何优化
在我们的交易模拟器中开始复盘测试j是多么简单【视频】创建新项目,为测试导入并准备好历史数据后,您便可以开始测试某个交易策略了。要开始测试,请点击“开始测试”按钮,之后,测试将立即开始,您会看到图表上…...
赤峰网站建设/营销软件网站
◆ 方案背景<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />IWS-ICB解决方案是北京一维天地科技有限公司(微软金牌认证合作伙伴)在微软SharePoint及Office系列产品基础上实现的企业集成协作工作平台解决方…...
wordpress安装主题教程/谷歌seo优化技巧
gentoo nrpe-2.12 # echo $0-bashgentoo nrpe-2.12 # echo $SHELL/bin/bash rm -rf */* //删除目录下所有文件,保留当前的位置下的所有文件和目录. $(命令) 返回该命令的结果 ./configure --prefix/etc/nagios >Makefile.in生成Makefile c121 #ls nrpe-2.12 nrp…...
内江做网站的公司/百度指数功能模块有哪些
错误提示:System.Data.OleDb.OleDbException: 字段太小而不能接受所要添加的数据的数量。“/”应用程序中的服务器错误。-------------------------------------------------------------------------------- 字段太小而不能接受所要添加的数据的数量。试着插入或粘…...
做网站后要回源码有何用/厦门百度开户
Linux 管理员手册(5)--引导和关机(转)本节说明当Linux系统引导和关机时发生了什么,应该任何正确完成. 如果没有遵循正确的过程, 文件可能损坏或丢失. 引导和关机概述 开启计算机并导致其操作系统被加载的过程 叫引导. The name comes from an image of the computer pulling it…...