C语言专项训练

道阻且长,接下来就要开始数据结构的学习,而学不可以不练,在接下来的学习中,数据结构学习的同时,c语言训练也要开始更新了~

NO.1 函数

1.void函数声明

09b24792783848de8337212df87c94fb.jpg

 这道题一看就秒了(开玩笑)我们在知道答案的同时,也要明白其中的知识点(其实就是我的表达能力不好,想要向别人解释有点困难,所以借着复习来锻炼自己😝)

考点:函数声明 void

解析:void是这个函数返回的类型,这个类型就是没有类型的空类型,代表这个函数的返回值是空。

void也用于声明一些万能指针. 比如你要用一个指针,但是还不确定这个指针会指向什么类型的变量,那就申请一个void类型的指针,它就叫做万能指针,因为它可以指向任何类型的变量.

在c语言中,凡不加返回值类型限定的函数,都会被编译器作为返回整型值处理

NO.2 交换变量

64621ba7ae1e42e5895b2887ca374b94.jpg

失误

在实际编写代码时尽量不要用B,因为可能会出现溢出(即两个变量之和可能会超过变量类型能表示的最大范围)。

可以改为a^=b;b^=a;a^=b;不需要考虑溢出,a^=b,此时a记录了a和b两个数中二进制的异同情况,1表示不同,0表示相同。

操作符知识-CSDN博客

NO.3 指针

一.函数指针和指针函数

 dd4f8d6d4b8044969f5dd039790b8915.jpg

1.指针函数:当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给调用函数,用于需要指针或者是地址的表达式中。是指带指针的函数,本质是函数

声明格式:类型说明符 *函数名(参数)

2.函数指针:指向函数的指针包含了函数的地址,可以通过它来调用函数。

声明格式:类型说明符 (*函数名)(参数)

拓展(复习):数组指针和指针数组

二.定值和定址

1f4a8b47fc26455f9475f279141d3155.jpg

const意思为"只读的",口诀:左定值,右定址(const在*的左边值不能变,在*的右边地址不能变)。

const int和int const的意思是一样的,也就是说,我们要从const* int和int*const中选择。

如果是const* int ptr,那么const限制的是*ptr,也就是地址,而ptr的值是可以改变的

如果是* const int ptr,那么const限制的是ptr,也就是值,而地址是可以改变的

如果是const int* const x,那么值和地址都被限制,不能改变。

注意:只要 在*之后有 const限定符,则该指针在声明时必须初始化 : 否则就是野指针

NO.4 分支和循环

一.if语句

9b9c515b353c448485e0d70d65ffb774.jpg

048a4ec49d4d4582bef7a3ab0d929349.jpg

 这道题本身很简单,而需要注意的是,对于for(;;)循环体,中间的表达式一般是个判定条件,返回布尔型。而for(表达式1;表达式2;表达式3)中,表达式2是判断,j=0这个表达式为0,因此判断条件为false,不会执行循环。

赋值语句的返回值是赋给的值

NO.5 操作符

dae5866aeb974d5bab1684d8470cce53.jpg

三目操作符从右到左计算

NO.7虚函数和纯虚函数

4a9ff0e411ab47edad37410695d1061a.jpg

纯虚函数是以=0为结尾的,并加上virtual关键字,且没有函数体的函数。

需要注意:

1、当类声明中包含纯虚函数时,则不能创建该类的对象

2、包含纯虚函数的类只用作基类

3、在类中使用=0指出类是一个抽象基类,在类中不可以定义该函数,只能声明

NO8.内存

22046f59de004a4f8556b77a12778310.jpg

NO9.数组

78ba637e1523485db56d393a2696bdda.jpg

NO.10 delete

bd1043c8a0b74552958416b6f6aec245.jpg

3b9fcbe8dac5466a954847a9b1850889.jpg

NO.11指针

 4661769c810f46879cc538bcb91150de.jpg

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

操作系统——死锁——银行家算法

银行家算法的实现需要三个矩阵: Max矩阵:用于存储每个进程完成所需要的全部资源量Allocation矩阵:用于存储每个进程每个资源已分配的情况Need矩阵:存储每个进程还需要的各个资源数 如下以一个实例来说明银行家算法: …

Linux多进程开发2 - 进程间通信

1、进程间通信的概念 进程是一个独立的资源分配单元,不同进程之间的资源是独立的,没有关联,不能在一个进程中直接访问另一个进程的资源。但是,进程不是孤立的,不同的进程需要进行信息的交换和状态的传递等&…

从C到Py:Python的组合数据类型

这一部分开始,我们将讲解Python中的组合数据类型,这里的知识十分基础而且重要,也已经与C语言的框架愈差愈远。 目录 序列和索引 1、概念 2、切片操作 3、序列的其他操作 列表 1、概念 2、创建与删除 3、列表的操作 4、列表生成式 …

string和char*的转换

1、使用 c_str() 方法: std::string 类提供了一个 c_str() 方法,它返回一个指向以 null 结尾的字符数组的指针(即 C 风格的字符串)。 std::string str "Hello"; const char* charPtr str.c_str();注意:返…

【YOLOV5 入门】——Pyside6/PyQt5可视化UI界面后端逻辑

声明:笔记是做项目时根据B站博主视频学习时自己编写,请勿随意转载! 一、环境安装 VScode/Pycharm终端进入虚拟环境后,输入下面代码安装pyside6,若用的Pycharm作为集成开发环境,也下载个pyqt5: …

得物 Zookeeper SLA 也可以 99.99% | 得物技术

一、背景 ZooKeeper(ZK)是一个诞生于2007年的分布式应用程序协调服务。尽管出于一些特殊的历史原因,许多业务场景仍然不得不依赖它。比如,Kafka、任务调度等。特别是在 Flink 混合部署 ETCD 解耦 时,业务方曾要求绝对…

什么是蓝桥杯?

蓝桥杯是中国著名的计算机程序设计竞赛,旨在挖掘和培养优秀的计算机人才。自2004年起,蓝桥杯已经成功举办多届比赛,吸引了全国各地的大批学生参与其中。这项比赛不仅是展示学生编程技能的平台,更是一个促进学术交流和提升创新能力…

C语言之探秘:访问结构体空指针与结构体空指针的地址的区别(九十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

npm配置阿里镜像库

1、配置阿里云镜像源 #查看当前使用的镜像地址命令 npm config get registry#设置阿里镜像源 npm config set registry http://registry.npmmirror.com 这里要注意下,之前的镜像源地址 https://registry.npm.taobao.org/ 已经不能用了,这里要更改为新…

SpringCloud之LoadBalancer负载均衡器的简单使用

SpringCloud之LoadBalancer负载均衡器的简单使用 loadbalancer用于对提供服务的集群做一个节点的选取规则。 如图所示&#xff0c;load balancer集成在调用方 示例 创建loadbalance-base模块,并引入相关依赖 <dependencies><dependency><groupId>org.spr…

【玩转PGSQL】基础管理防火墙及用户权限管理-知否知否

基础管理 登录方式 psql -d postgres -h 127.0.0.1 -p 5432 -U postgre-d 库 -h IP -p 端口 -U 用户基础sql -- 查看所有库 \l-- 创建库 create database test;-- 进入库 \c test-- 查看所有表 \d-- 查看表结构 \d t1;-- 查看所有用户 \du-- 列显示 \x-- 显示当前库下schem…

基于有序抖动块截断编码的水印嵌入和提取算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 噪声测试 旋转测试 压缩测试 2.算法运行软件版本 matlab2022a 3.部分核心程序 ............................................................…

STM32—外部中断_按键控制 LED

目录 1 、 电路构成及原理图 2 、编写实现代码 main.c exti.c 3、代码讲解 4、烧录到开发板调试、验证代码 5、检验效果 开发板介绍 相关笔记 此笔记基于朗峰 STM32F103 系列全集成开发板的记录 1 、 电路构成及原理图 外部中断---EXTI EXTI&#xff08;External…

codeforce #925 (div3) 题解

D. Divisible Pairs 给出数组 a a a&#xff0c;如果二元组 ( i , j ) (i,j) (i,j)满足 a i a j m o d x 0 & & a i − a j m o d y 0 a_i a_j mod x 0 \&\& a_i - a_j mod y 0 ai​aj​modx0&&ai​−aj​mody0&#xff0c;则beauty。其中 i &…

BEVFormer代码阅读

1. 代码地址 https://github.com/fundamentalvision/BEVFormer 2. 代码结构 个人理解&#xff0c;代码库中的代码与两篇论文都略有不同&#xff0c;总结起来&#xff0c;其结构如下。 3. BEVFormer 的 Pipeline 根据自己调试算法模型以及对论文的理解&#xff0c;我这里将 …

牛客网刷题 :BC50 你是天才吗

描述 据说智商140以上者称为天才&#xff0c;KiKi想知道他自己是不是天才&#xff0c;请帮他编程判断。输入一个整数表示一个人的智商&#xff0c;如果大于等于140&#xff0c;则表明他是一个天才&#xff0c;输出“Genius”。 输入描述&#xff1a; 多组输入&#xff0c;每…

(十)C++自制植物大战僵尸游戏设置功能实现

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/m0EtD 游戏设置 游戏设置功能是一个允许玩家根据个人喜好和设备性能来调整游戏各项参数的重要工具。游戏设置功能是为了让玩家能够根据自己的需求和设备性能来调整游戏&#xff0c;以获得最佳的游戏体验。不同的游戏和平…

音视频、网络带宽等常用概念详解

1.aac音频参数解释 AAC帧大小为1024个sample&#xff1a;指AAC编码一般以1024个采样为一个音频帧。 采样率48khz&#xff1a;指1秒&#xff08;即1000毫秒&#xff09;采集48000次。 计算1秒有多少帧&#xff1a;48000 / 1024 46.875 a&#xff08;用a表示计算结果&#xff0…

vite - WebAssembly入门

1. 初始化 vite 项目 1.1 安装 nvm&#xff08;可选&#xff09; brew update brew install nvm在 ~/.zshrc 添加 export NVM_DIR~/.nvm source $(brew --prefix nvm)/nvm.sh执行如下命令 source ~/.zshrc1.2 安装 node nvm install nodenvm ls -> …

PyTorch Scheduler动态调整学习率

文章目录 PyTorch动态调整学习率1.使用官方scheduler2.自定义scheduler参考 PyTorch动态调整学习率 深度学习中长久以来一直存在一个令人困扰的问题&#xff0c;那就是如何选择适当的学习率。如果学习速率设置得过小&#xff0c;会导致模型收敛速度缓慢&#xff0c;训练时间延…