如果返回的是局部变量(栈上的) 引用,有可能会有问题 运行结果: 运行结果: 函数返回值当左值。 运行结果: Read More
引用共用同一个内存空间,只是一个别名。 运行结果: 下列结构体占多少字节? 运行结果: 引用的本质: 引用的本质: 运行结果: 间接赋值: Read More
计算字符串中最后一个单词长度,单词以空格隔开 此代码虽然能运行,但是此函数有一个bug,gets函数:没有指定输入字符的大小,限制输入缓冲区的大小,如果输入的字符大于定义的数组长度,会发生内存越界,堆栈溢出。后果非常怕怕 修改代码如下: fgets函数会指定大小,如果超出数组大小,会自动根据定义数组 Read More
变量名回顾: 变量名实质上是一段连续存储空间的别名,是一个标号(门牌号) 程序中通过变量来申请并命名内存空间 通过变量的名字可以使用内存空间 问题1:对一段连续的内存空间只能取一个别名吗? 1. 引用的概念 a) 在C++中新增加了引用的概念 b) 引用可以看作一个已定义变量的别名 c) 引用的语法 Read More
之前实现的顺序栈和链式栈的进栈和出栈操作时间复杂度都是O(1)。而用同样的方式实现队列,进队和出队的复杂度总有一个是O(n) 。顺序队列的瓶颈 顺序队列 线性表的第一个元素作为队头 线性表的最后一个元素作为队尾 入队的新元素是在线性表的最后,时间复杂度为O(1); 出队时需要将后续的所有元素向前移动 Read More
队列的定义 队列是一种特殊的线性表 队列仅在线性表的两端进行操作 队头(front):取出数据元素的一端 队尾(rear):插入数据元素的一端 队列不允许在中间部位进行操作! 队列的性质 队列的一些常用操作 创建队列 销毁队列 清空队列 进队列 出队列 获取队头元素 获取队列的长度 队列的顺序存储实 Read More
递归与回溯 8皇后问题: 在一个8*8棋盘上,有8个皇后,每个皇后占一格;要求两个皇后不能处在同一行、同一列或同一对角线上。 找放置的位置,方向很重要,当从第一行开始,放置皇后的位置后,第二行放置时要考虑上一行的放置。 即3个方向为(-1,-1),(-1, 0),(-1,1) #include <s Read More
几乎所有的编译器都具有检测括号是否匹配的能力 编译器中的括号检测能力是如何实现的呢? 匹配函数: 代码复用链式栈的,main函数更改如下: #include <stdio.h> #include <stdlib.h> #include "LinkStack.h" /* run this progra Read More
static 1、概述 static 声明的变量在C语言中有两方面的特征: 1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。 2)、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。 2 Read More
有关上拉输入、下拉输入、推挽输出、开漏输出、复用开漏输出、复用推挽输出以及浮空输入、模拟输入的区别 1、上拉输入:上拉就是把电位拉高,比如拉到Vcc。上拉就是将IO口上不确定的信号通过一个上拉电阻把IO上拉为高电平!电阻同时起限流作用!弱强只是上拉电阻的阻值不同,没有什么严格区分。 2、下拉输入:就 Read More