《C语言特点》

1、数值在计算机存储是按补码进行存储,整数的补码是它本身,负数的补码是按位取反再加1 ,取反的时候符号位是不取反的要保留。

1、非结构化的语言 早期的basic fortran  程序的流程可以随意跳转,难以阅读和维护
2、结构化语言  规定程序必须 由 具有良好特性的基本结构(顺序结构、分支结构、循环结构)构成,程序中的流程不允许随意的跳转,程序总是由上而下顺序执行各个基本结构的。
  以上的非结构化语言和、结构化语言 都是基于过程的语言,在编写程序时 需要具体指定 每一个过程的细节。在实践的发展中,人们又提出了面向对象的程序设计方法。程序面对的 不是过程的细节,而是一个个对象,对象是由数据 以及对数据进行的操作组成的。面向对象程序设计。对象的使用。

3、C语言的祖先是BCPL,最初的C语言只是为了描述和实现UNIX 操作系统提供的一种工作语言而设计的。
4、C语言的特点:语法限制不太严格程序设计自由度大。C语言允许直接访问物理地址 能进行bit操作。可移植性好,生成目标代码质量高,程序执行效率高。
5、C语言本身不提供 输入输出语句。输入和输出的操作是由函数库函数scanf 和 printf 等函数来完成的。
6、计算机不能直接识别和执行用高级语言写的指令,必须用编译器 把C语言的程序翻译成二进制形式的目标程序,然后再将该目标程序与系统的函数库以及其他目标程序连接起来,形参可执行的目标程序。在用编译系统对程序进行编译时,自动包括了预编译和正式编译两个阶段。
7、经过编译所得到的二进制目标文件,还不能够工计算机直接执行。一个程序可能包含若干个源程序文件,而编译时以源程序文件为对象的一次编译只能得到与一个源程序文件想对应的目标文件,它只是整个程序的一部分,必须把所有经过编译的目标文件,连接装配起来,再与函数库相连接 才能成为可执行目标文件。

8、一个程序只要包括以下两个方面:对数据的描述就是数据结构。对操作的描述就是算法。为解决一个问题采取的方法和步骤就是算法。算法的特性:有穷性、确定性、和有效性。算法的描述: 用自然语言表示算法、用流程图表述算法、用伪代码表示算法。


9、结构化程序设计方法:自顶向下,逐步细化;自下而上,逐步积累。
10、数据分为 常量和变量。在程序运行过程中其值不能改变的称为常量,有 整型常量 、实型常量(1.2 12.34e3)、字符常量(普通字符、转义字符、字符串常量)、符号常量(#define A 2)。
11、变量(有名字的一个存储单元,存放数据)、常变量(拥有变量的基本属性,有名字有类型,占存储单元,只是不允许改变其值)
12、数据类型。
    
13、字符、字符变量。浮点型数据(存储小数)在C语言中实数是以指数的形式存储在内存中的。3.1416 ,3.14159 * e1,0.314159 * e2,由于小数点位置移动,所以称为浮点数。规范化的指数形式 0.314159 * e2,在程序以指数的形式输出小数时,必然时规范化的输出。


14、C语言中实型常量都是按双精度浮点型的常量。float a = 3.14159f;  ,long double a = 3.14159L;
15、运算符。
16、赋值过程中的类型转换,隐形类型转换,显形类型转换。
17、输入输出概念。
18、putchar(),getchar(),gets(),puts()
19、内存分配 malloc(),字符串函数strcat()、strcmp()、strcpy() 
20、c99增加的逻辑型变量 bool。
21、函数定义和调用 形参和实参。实参和形参之间是值传递。函数类型决定返回值的类型。
22、函数的递归调用。一个函数在执行过程中,直接或者间接的调用本身。
23、局部变量和全局变量:在函数之内定义的变量 是局部变量,在函数之外定义的变量是全局变量。
24、静态局部变量。一个由C/C++编译的程序占用的内存分为以下几个部分:堆、栈、全局区、常量区、代码区。
25、内部函数:如果一个函数只能够被本文件中的其他函数调用称为内部函数。static。
26、地址,指针,指针变量。 一个变量的地址称为该变量的指针。指针变量用来盛放指针。
27、匿名枚举、和匿名联合、匿名结构体。
28、typedef 声明新 类型名。
29、程序文件 和数据文件。根据数据的组成形式,数据文件可分为ASCII 文件,和二进制文件。数据在内存中是以二进制形式存储的如果不加转换的输出到外存 就是二进制文件(映像文件)。如果在外存上以ASCII 代码存储,则需要在存储前 进行转换,及文本文件,每一个字节放一个字符的ASCII代码。

30、文件缓冲区:系统自动的为每一个正在使用的文件开辟文件缓冲区。文件类型指针。 fopen()、fread() fwrite()fclose()  fputc() fgetc()fgets() fputs()fprintf() fscanf()
31、随机读写文件、fseek()。

一、关于const跟指针

    1、指向const对象的指针 const int *p;对象的常指针 int * const p;

    2、赋值跟类型检查

           const 限定词是很严格的,没有强调const的地方是字符数组的字面值。

           char*cp = "sdff";编译器将接受它而不报错,从技术讲这是一个错误。

    3、函数的参数和返回值

         当函数的参数是const的,是创建者的工具,避免值被修改,而不是调用者的工具。

         对函数的返回值来说,const int go(),对于内部类型的的按值返回是否是一个const是无关紧要的,因为编译器已经不让它成为一个左值。

          注:当用户处理自定义类型的时候按值返回常量是很重要的。如果一个函数按值返回一个类对象为const时,那么这个函数的返回值不能当作一个左值。

          有时候,在求表达式值的期间,编译器必须创建临时对象。他们也需要存储空间,也必须能够构造和销毁,编译器决定他们存在的时间和细节。对于临时量自动的转换为常量。

          对按值返回对象的函数的调用式直接修改,编译虽然可以通过,但对于临时对象的修改是错误的,临时对像在表达式编译过之后,临时对象也将被清理。

          当函数返回某一个值时,会先在临时空间中生成对应的函数返回值的类型,然后可以利用相关变量进行接收。

指针的分析,从变量名处起,根据运算符的优先结合一步步分析

1、一级指针 int *p; P与*结合说明p是一指针,指向整形
2、二级指针int* *p; p与[]结合说明是一个指针,指向int*,
3、指针数组,int *p[3];
4、数组指针,int (*p)[3];
5、函数指针,int (*p)(int a);
6.函数指针数组,int(*p[5])(int a);
7.数组的引用,int (&p)[5];

算法

1、算法; 定义解决问题的方法,一系列定义明确的操作。
1> 复杂度:时间复杂度、空间复杂度
  时间复杂度:

并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。常见的时间复杂度有:常数阶O(1),对数阶 O(log2n),线性阶O(n), 线性对数阶O(nlog2n),平方阶O(n2),立方阶O(n3),..., k次方阶O(nk),指数阶O(2n)。

 空间复杂度:
    一个程序的空间复杂度是指运行完一个程序所需内存的大小。利用程序的空间复杂度,可以对程序的运行所需要的内存多少有个预先估计。一个程序执行时除了需要存储空间和存储本身所使用的指令、常数、变量和输入数据外,还需要一些对数据进行操作的工作单元和存储一些为现实计算所需信息的辅助空间。程序执行时所需存储空间包括以下两部分。  
(1)固定部分。这部分空间的大小与输入/输出的数据的个数多少、数值无关。主要包括指令空间(即代码空间)、数据空间(常量、简单变量)等所占的空间。这部分属于静态空间。
(2)可变空间,这部分空间的主要包括动态分配的空间,以及递归栈所需的空间等。这部分的空间大小与算法有关。
一个算法所需的存储空间用f(n)表示。S(n)=O(f(n))  其中n为问题的规模,S(n)表示空间复杂度。

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
应用背景为变电站电力巡检,基于YOLO v4算法模型对常见电力巡检目标进行检测,并充分利用Ascend310提供的DVPP等硬件支持能力来完成流媒体的传输、处理等任务,并对系统性能做出一定的优化。.zip深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值