数据结构----c语言复习
数据结构----c语言复习
一.类型
1.类型的种类
char 1个字节 范围-128~127
short 2个字节 范围-32768~32767
int 4个字节 范围-2147483648~2147483647
long 4个字节 范围-2147483648~2147483647
float 4个字节 有效位为6~7位
float 8个字节 有效位为15~16为
unsigned char 1个字节 范围 0~255
unsigned short 2个字节 范围 0~65535
unsigned int 4个字节 范围 0~4294967295
unsigned long 4个字节 范围 0~4294967295
思考一下下面程序的运行结果(注意类型)
int main(){unsigned char a,b,c,d;a=30;b=a++;c=++a;d=10*(a++);//发生截断 d存的值为64printf("%d %d %d\n",b,c,d);//结果为30 32 64,return 0;
}
2.隐式转换
1.同整型时
低字节高字节类型转换
有符号类型向无符号类型转换
2.同浮点型时
低字节高字节类型转换
2.整型和浮点型同时存在时
整形向浮点型转换
看下面代码,求count的值
int func(){int count=0;unsigned int a=1;int b=-5;while(b++<=5){if(a+b>5){//有符号类型先向无符号类型进行转换,再进行运算count++;}}return count;//结果为5
}
3.输出格式
%hhd //输出char型(以数字的形式)
%hd //输出short型
%d //输出int型
%lld //输出long long型
%u //输出unsigned int型
%c //输出char型
%s //输出字符串
%f //输出float型
%lf //输出double型
%x //以16进制进行输出
%o //以8进制进行输出
二.运算符优先级及其结合性
这里借用一下大佬的图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-veOSfeA8-1690986848933)(C:\Users\冉喜文\AppData\Roaming\Typora\typora-user-images\image-20230730223510263.png)]
三.五大内存区
1.代码区:代码,函数
2.常数区:存常数
3.全局静态区:全局变量,静态变量(全局变量与静态变量的区别:作用域不同,全局变量可以跨文件使用,静态变量不能跨问文件使用)
4.堆区:什么都能存
5.栈区:局部变量 函数入口地址
堆区和栈区的区别
1.申请方式不同
2.生命周期不同
3.效率不同
4.生长方向不同
5.内容不同
6.是否产生内存碎片
四.指针
指针:装地址的变量
1.看下面代码,判断结果
第一个
void fun(char* q) {//这种传递方式是值传递,把p的值给q,q指向了申请的空间,p还是指向空地址q = (char*)malloc(100);
}int main() {char* p = NULL;fun(p);return 0;
}
第二个
void fun(char** q) {//这种传递方式是地址传递,*q的值就是p所指向的地址,所以这时p会指向申请的新空间*q = (char*)malloc(100);
}int main() {char* p = NULL;fun(&p);return 0;
}
2.写出下列四种情况,判断程序将会产生怎样的结果
第一种
void GetMemory(char *p)
{p=(char*)malloc(100)}
void Test(void){char *str=NULL;GetMemory(str);strcpy(str,"hello world");printf(str);
}
//此程序会报错,跟上面第一个代码一样是值传递 p指向了申请的空间,str还是指向空地址
第二种
char* GetMemory(void){char p[] = "hello world";return p;
}
void Test(void){char *str = NULL;str = GetMemory();printf(str);
}
//此程序会报错,因为无法返回p的地址,p已经被销毁了
第三种
void GetMemory2(char **p, int num){*p =(char*)malloc(num);
}
void Test(void)
{char *str = NULL;GetMemory(&str, 100);strcpy(str,"hello");printf(str);
}
//输出 hello
第四种
void Test(void){char *str = (char*)malloc(100);strcpy(str,"hello");free(str);if (str != NULL){strcpy(str, "world");printf(str);}
}
//输出world
3.关于数组的指针问题
观察下面代码,判断结果
int arr[]={1,2,3,4,5};
*(arr+1);//2
*(arr++);//编译不通过数组名是常量,不能进行++操作
*(&arr+1);//这个数组后面的那个数,垃圾值
int a[5][2]={(1,2),(3,4),(5,6),(7,8)};//逗号运算符,()中的两个数取右边的那个数
a[1][0]//6
相关文章:
数据结构----c语言复习
数据结构----c语言复习 一.类型 1.类型的种类 char 1个字节 范围-128~127 short 2个字节 范围-32768~32767 int 4个字节 范围-2147483648~2147483647 long 4个字节 范围-2147483648~2147483647 float 4个字节 有效位为6~7位 float 8个字节 有效位为15~16为 unsigned c…...
网络安全公司校招面试会面试那些问题?
面试官会从那些方面去考察面试者? 以某安全公司的技术支持工程师岗位为例 面试官可能会从网络技术、操作系统、数据库、项目经验、语言表达以及个人擅长技能方面展开 面试官会提出那些问题来考查面试者呢? 网络基础方面的问题:请介绍一下…...
vue element el-upload附件上传、在线预览、下载当前预览文件
上传 在线预览(iframe): payload: response: 全部代码: <template><div><el-table :data"tableData" border style"width: 100%"><el-table-column prop"d…...
设计模式九:组合模式(Composite Pattern)
组合模式是一种结构型设计模式,它允许我们将对象组合成树形结构来表示“整体-部分”层次关系。组合模式使得用户可以以相同的方式处理单个对象和组合对象。 在组合模式中,有两种主要类型的对象:叶子对象和组合对象。叶子对象代表树结构中的最…...
【COlor传感器】通过扰动调制光传感实现智能光传输的占用分布估计研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
微服务系列<3>---微服务的调用组件 rpc 远程调用
什么是rpc调用,让我们调用远程方法就像调用本地方法一样 这就属于rpc调用 rpc是针对于本地来说的 调用远程方法根调用本地方法一样 如果能达到这种效果 就是rpc调用如果达到一种效果 调用远程和调用本地一样 他就是一种rpc框架2个微服务 之间发的调用 我们之前通过ribbon的方式…...
P1558 色板游戏
题目链接 题目要求实现区间覆盖修改以及区间数量查询,不难想到为线段树,而需要维护什么值来得到不同数的数量很难想,但是我们注意到颜色的数量最多只有30种,所以对于每一种颜色在一个区间中是否存在,我们可以使用线段树…...
大数据概论
1、大数据概念 大数据(Big Data): 指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产 大数据主要解决,海量数据的采集、存储和分…...
数据库访问中间件--springdata-jpa的基本使用
二、单表SQL操作-使用关键字拼凑方法 回顾 public interface UserRepository extends JpaRepository<User,Integer> {User findByUsernameLike(String username); }GetMapping("/user/username/{username}")public Object findUserByUsername(PathVariable S…...
c++游戏制作指南(二):制作一个炫酷的启动界面(c++绘图)
🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 🍟欢迎来到静渊隐者的csdn博文,本文是c游戏制作指南的一部🍟 🍕更多文章请点击下方链接🍕 🍨 c游戏制作指南dz…...
spring.config.location 手动指定配置文件文件
–spring.config.locationD:\javaproject\bangsun\ds-admin\ds-oper-mgr\src\main\resources\application.yml...
【uniapp 使用ECharts】
Uniapp可以使用ECharts进行数据可视化,需要按照以下步骤进行操作: 1. 安装ECharts插件 可以使用npm安装echarts插件,命令如下: npm install echarts --save2. 引入ECharts插件 在需要使用ECharts的页面中引入ECharts插件&…...
数据结构--线性表2-2
目录 一、线性表例题: 二、分配动态内存: 1.动态创建一个空顺序表的算法: 2.动态顺序表的插入算法: 3.动态顺序表的删除 三、线性表的链式表示和实现 例题1:创建链表并插入26个字母 例题2:在链表中取…...
利用openTCS实现车辆调度系统(一)系统介绍
系统介绍 openTCS简介 官方的回答: openTCS(开放式运输控制系统的缩写)是一种免费的控制系统软件,用于协调自动导引车(AGV)和移动机器人车队,例如在生产工厂中。 通常应该可以控制任何具有通信…...
销存管理系统ssm进销存仓库销售java jsp源代码mysql
本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 销存管理系统ssm 系统有1权限:管理员 二…...
【Axure教程】移动端二级滑动选择器
今天教大家制作移动端二级滑动选择器的原型模板,该原型已全国一二级省市选择器为案例,因为该原型用中继器做的,所以制作完成之后使用也很方便,只需修改中继器表格里的内容即可 一、效果展示 1. 拖动选择 2. 快捷选择 【原型预览…...
PHP操作solr
1,php下载solr(索尔)扩展,phpinfo需要支持solr扩展. 2,安装 Solr。Solr 要求您的系统上有 Java。java –version,Java 的版本大于 1.6 3,下载solr,并安装 D:\solr。 开启solr命令:solr start 关闭solr命令:…...
leetcode 46. Permutations(排列)
返回数组nums中数字的所有可能的排列组合。 思路: 排列组合这种一般会想到DFS。 这个排列中每个数字只能用一次, 可用如下DFS流程 stack.push(num); dfs(nums, num); stack.pop();退出条件: 当stack的size和nums数组一样时,说…...
5、二叉树
二叉树遍历 递归序 public static void f(Node head) {if (head == null) {return;}f(head.left);f(head.right); }前中后遍历_递归 public static void preOrderRecur(Node head) {if (head == null) {return;}System.out.print(head.value + " ");preOrderRecur…...
Doris比MySQL快的原因
简介 在数据存储和数据分析领域,MySQL和Doris是比较流行的数据库管理系统的代表。 在如今的大数据时代,数据量和数据分析的速度是很重要的。 在数据分析和数据处理中,Doris比MySQL快,这个问题一直是许多人关心的问题。 Doris的数…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
