- 博客(103)
- 资源 (43)
- 问答 (1)
- 收藏
- 关注

原创 C语言学习栏目目录
目录第一 VS编译C语言第二认识C语言程序第三 C语言程序调试第四 C语言数据说明4.1 int类型介绍4.2 char类型介绍4.3 float、double类型介绍4.4 小结及其他数据类型简单介绍4.5 类型大小4.6 使用数据类型第五 字符串和格式化输入/输出5.1 printf()函数详解5.2 使用scanf()5.3 篇幅小结...
2019-12-31 10:33:02
1355
原创 11.8 变长数组(VLA)
要创建一个能处理任意大小二维数组的函数,比较繁琐(必须把数组作为一维数组传递,然后让函数计算每行的开始处)。另外,该程序还演示了以变长数组作为形参的函数既可处理传统C数组,也可处理变长数组。这里的“变”指的是:在创建数组时,可以使用变量指定数组的维度。需要注意的是,在函数定义的形参列表中声明的变长数组并未实际创建数组。这说明带变长数组形参的函数实际上是在原始数组中处理数组,因此可以修改传入的数组。在学习处理二维数组的函数中可能不太理解,为何只把数组的行数作为函数的形参,而列数却内置在函数体内。
2023-02-25 19:02:51
1328
1
原创 11.7 指针和多维数组
指针和多维数组有什么关系?为什么要了解它们的关系?处理多维数组的函数要用到指针,所以在使用这种函数之前,先要更深入地学习指针。至于第 1 个问题,我们通过几个示例来回答。为简化讨论,我们使用较小的数组。然后数组名zippo是该数组首元素的地址。在本例中,zippo的首元素是一个内含两个int值的数组,所以zippo是这个内含两个int值的数组的地址。下面,我们从指针的属性进一步分析。因为zippo是数组首元素的地址,所以zippo的值和&zippo[0]的值相同。
2023-02-23 21:06:37
1028
1
原创 VS编译出现‘itoa‘: The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant
'itoa': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: itoa.
2023-02-23 09:25:02
1631
原创 11.6 保护数组中的数据
编写一个处理基本类型(如,int)的函数时,要选择是传递int类型的值还是传递指向int的指针。通常都是直接传递数值,只有程序需要在函数中改变该数值时,才会传递指针。对于数组别无选择,必须传递指针,因为这样做效率高。如果一个函数按值传递数组,则必须分配足够的空间来储存原数组的副本,然后把原数组所有的数据拷贝至新的数组中。如果把数组的地址传递给函数,让函数直接处理原数组则效率要高。传递地址会导致一些问题。C 通常都按值传递数据,因为这样做可以保证数据的完整性。
2023-02-22 19:56:22
346
原创 Qt5.12 登录对话框
实现功能:在弹出对话框中填写用户名和密码,按下登录按钮,如果用户名和密码均正确则进入主窗口,如果有错则弹出警告对话框。实现原理:通过上节的多窗口原理实现由登录对话框进入主窗口,而用户名和密码可以用 if 语句进行判断。实现过程:1.先新建 Qt工程,工程名为 LoginPro,选用 QWidget 作为 Base class,这样便建立了主窗口。文件列表如下:(不清楚创建可以看:Qt 5.12 编写多窗口程序(新手手把手教学)2、然后新建一个 Qt Designer Form C
2020-12-17 20:15:36
1318
4
原创 Qt 5.12 编写多窗口程序(新手手把手教学)
实现功能:程序开始出现一个对话框,按下按钮后便能进入主窗口,如果直接关闭这个对话框,便不能进入主窗口,整个程序也将退出。当进入主窗口后,我们按下按钮,会弹出一个对话框,无论如何关闭这个对话框,都会回到主窗口。实现原理:程序里我们先建立一个主工程,作为主界面,然后再建立一个对话框类,将其加入工程中,然后在程序中调用自己新建的对话框类来实现多窗口。实现过程:1、首先新建 Qt工程,工程名为 NewForm,Base class 选为 QWidget。建立好后工程文件列表如下图。a、点击“
2020-12-17 19:10:22
16861
原创 3 Linux编译C语言
1、在桌面新建一个C_Program文件夹2、新建一个main.c文件如下图键入如下代码(vi编译器见我的博客:https://blog.youkuaiyun.com/u014411348/article/details/110544677)ain(int argc,char *argv[]){ printf("hello world!\n");}3、查看保存结果,如下图4、编译程序,gcc main.c编译后,查看文件夹。有a.out文件5、运行编译
2020-12-03 18:18:04
177
原创 E212: 无法打开并写入文件
在编写配置文件时,常常忘记切换到root用户,导致文件编辑完毕,敲入:wq 退出保存时,出现 E212:无法打开并写入文件 的错误提示。这是由于在该目录下当前用户没有写权限导致。解决办法如下: : w ! sudo tee %tee 用于读取输入文件,同时保存%表示当前编辑文件(不过这种方法有个要求就是当前编辑用户必须在 sudoers这个文件中,这也是执行sudo命令的要求...
2020-12-03 16:42:56
17456
4
原创 2 VI/VIM 编辑器
i 在当前光标所在字符的前面,转为输入模式。I 在当前光标所在行的行首转换为输入模式。a 在当前光标所在字符的后面,转为输入模式。A 在光标所在行的行尾,转换为输入模式。o 在当前光标所在行的下方,新建一行,并转为输入模式。O 在当前光标所在行的上方,新建一行,并转为输入模式。s 删除光标所在字符。r 替换光标处字符。1 、移动光标指令:h( 或左方向键) 光标左移一个字符。l( 或右方向键) 光标右移一个字符。j( 或下方向键) 光标下移一行。k( 或上...
2020-12-03 16:32:44
651
原创 1、VMware虚拟机安装及安装 Ubuntu
本篇教程基于VMware15版,如果没有安装这个软件可以自行百度一下,有很多。1、安装虚拟机打开 VMware,选择:文件->新建虚拟机或者直接电机创建新的虚拟机,如图所示:打开下图所示创建虚拟机向导界面:选中上图中的“自定义”选项,然后选择“下一步”,进入下图所示硬件兼容性选择界面:在上图中我们使用默认值就行了,直接点击“下一步”,进入下图所示的操作系统安装界面:上图就是选择你新创建的虚拟机要安装什么系统?windos 还是 linux,如果你要现在就安装系统
2020-12-01 10:02:10
5161
原创 11.5 指针操作
C语言学习栏目目录可以对指针进行哪些操作?C提供了一些基本的指针操作,下面的程序示例中演示了8种不同的操作。为了显示每种操作的结果,该程序打印了指针的值(该指针指向的地址)、储存在指针指向地址上的值,以及指针自己的地址。如果编译器不支持%p 转换说明,可以用%u 或%lu 代替%p;如果编译器不支持用%td转换说明打印地址的差值,可以用%d或%ld来代替。下程序清单演示了指针变量的 8种基本操作。除了这些操作,还可以使用关系运算符来比较指针。/*************************
2020-11-26 18:43:14
337
原创 11.4 函数、数组和指针
C语言学习栏目目录目录1 使用指针形参2 指针表示法和数组表示法假设要编写一个处理数组的函数,该函数返回数组中所有元素之和,待处理的是名为marbles的int类型数组。应该如何调用该函数?也许是下面这样:total = sum(marbles); // 可能的函数调用那么,该函数的原型是什么?记住,数组名是该数组首元素的地址,所以实际参数marbles是一个储存int类型值的地址,应把它赋给一个指针形式参数,即该形参是一个指向int的指针:int sum(int * ar)
2020-11-23 08:45:11
263
原创 11.3 指针和数组
C语言学习栏目目录在上一张中我介绍过指针,指针提供一种以符号形式使用地址的方法。因为计算机的硬件指令非常依赖地址,指针在某种程度上把程序员想要传达的指令以更接近机器的方式表达。因此,使用指针的程序更有效率。尤其是,指针能有效地处理数组。我们很快就会学到,数组表示法其实是在变相地使用指针。我们举一个变相使用指针的例子:数组名是数组首元素的地址。也就是说,如果flizny是一个数组,下面的语句成立:flizny == &flizny[0]; // 数组名是该数组首元素的地址flizny
2020-11-23 08:01:35
245
原创 11.2 多维数组
C语言学习栏目目录目录1 初始化二维数组2 其他多维数组假设你是一个气象分析员,要分析5年内每个月的降水量数据,你首先要解决的问题是如何表示数据。一个方案是创建60个变量,每个变量储存一个数据项(我们曾经提到过这一笨拙的方案,和以前一样,这个方案并不合适)。使用一个内含60个元素的数组比将建60个变量好,但是如果能把各年的数据分开储存会更好,即创建5个数组,每个数组12个元素。然而,这样做也很麻烦,如果Tempest决定研究50年的降水量,岂不是要创建50个数组。是否能有更好的方案?处理这种
2020-11-20 16:32:06
320
原创 11.1 数组
数组通常被用来储存程序需要的数据。例如,一个内含12个整数元素的数组可以储存12个月的天数。在这种情况下,在程序一开始就初始化数组比较好。下面介绍初始化数组的方法。只储存单个值的变量有时也称为标量变量(scalar variable),我们已经很熟悉如何初始化这种变量:int fix = 1;float flax = PI * 2;代码中的PI已定义为宏。C使用新的语法来初始化数组,如下所示:int main(void){ int powers[8] = {1,2,4.
2020-11-20 09:08:43
408
2
原创 VS无法使用宏定义#define解决方案
在使用VS编译C语言或者其他语音用到宏定义#define,VS会报错提示(以VS2019为例)解决方式:在工具——>选项——>文本编辑器——>C/C++——>查看中,将“可转化为constexpr的宏”更换为“无”即可。如下图...
2020-11-19 14:37:52
10531
6
原创 第十一 数组和指针
C语言学习栏目目录本章介绍以下内容:关键字:static运算符:&、*(一元)如何创建并初始化数组指针(在已学过的基础上)、指针和数组的关系编写处理数组的函数二维数组人们通常借助计算机完成统计每月的支出、日降雨量、季度销售额等任务。企业借助计算机管理薪资、库存和客户交易记录等。作为程序员,不可避免地要处理大量相关数据。通常,数组能高效便捷地处理这种数据。我前面简单地介绍了数组,本章将进一步地学习如何使用数组,着重分析如何编写处理数组的函数。这种函数把模块化编程的.
2020-11-19 11:49:13
151
2
原创 10.3 指针简介
C语言学习栏目目录目录1 间接运算符:2 声明指针3 使用指针在函数间通信小结:函数指针?什么是指针?从根本上看,指针(pointer)是一个值为内存地址的变量(或数据对象)。正如char类型变量的值是字符,int类型变量的值是整数,指针变量的值是地址。在C语言中,指针有许多用法。本章将介绍如何把指针作为函数参数使用,以及为何要这样用。假设一个指针变量名是ptr,可以编写如下语句:ptr = &pooh; // 把pooh的地址赋给ptr对于这条语句,我们说pt
2020-11-19 10:21:55
577
原创 10.2 查找地址:&运算符
指针(pointer)是 C 语言最重要的(有时也是最复杂的)概念之一,用于储存变量的地址。前面使用的scanf()函数中就使用地址作为参数。概括的说,如果主调函数不使用return返回的值,则必须通过地址才能修改主调函数中的值。接下来,我们将介绍带地址参数的函数。首先介绍一元&运算符的用法。一元&运算符给出变量的存储地址。如果pooh是变量名,那么&pooh是变量的地址。可以把地址看作是变量在内存中的位置。假设有下面的语句:pooh = 24;假设pooh的存储地址是
2020-11-19 08:28:32
393
1
原创 基于DS3231时钟模块的stm32 Hal库程序,源码
关于DS3231模块我在我的博客基于DS3231时钟模块的stm32 程序,源码中有介绍 ,大家可以自己看下。我这篇直接讲HAL的代码。一、配置IO/** /** ****************************************************************************** * @file bsp_i2c_ds3231.h * @author 兲涳 * @version V1.0 * @date 2020-11-18
2020-11-18 11:37:03
3395
7
原创 基于DS3231时钟模块的stm32 程序,源码
目录一、模块简介DS3231时钟芯片结构原理引脚图内部结构图DS3231典型应用电路DS3231时钟芯片结构二、与stm32通信1、配置IO2、初始化与函数3、主函数调用4、使用源码一、模块简介DS3231是一款高精度I2C实时时钟器件,具有集成的温度补偿晶体振荡器。该器件包含电池输入端,断开主电源时仍可保持精确计时。集成的晶体振荡器可提高器件的长期精确度。DS3231的寄存器能保存秒、分、时、星期、日期、月、年和闹钟设置等信息。少于31天的月份,可自
2020-11-16 09:24:42
13317
8
原创 stm32cubemx安装教程(包含安装包)
目录1、安装JRE环境2、安装STM32CubeMX3、HAL库安装(可不安装)在线安装离线安装4、安装完成这个是使用Java开发的一个工具,所以要先安装JRE环境。1、安装JRE环境下载路径:a、官网:https://www.java.com/en/download/manual.jspb、自己百度或者下方留个邮箱下载完安装包后,点击安装,如下(若不想使用默认路径,记得在左下方勾选“更改目标文件夹”)。选择安装 修改安装路径, 点击下一步 ..
2020-11-10 14:00:51
59484
78
原创 Stm32 设置PWN定时器(完整的定时器复用表)多通道设置
目录定时器复用表:1、高级定时器设置(tim1,tim8)2、通用定时器设置(以tim3为例)3、调用定时器复用表:STM32F1xx官方资料:《STM32中文参考手册V10》-第14章 通用定时器具体资料自己查看,这个表是自己统计的,不在其中,需要资料可以留个邮箱或者自己百度1、高级定时器设置(tim1,tim8)定时器1初始化:(通道1,PA8)(IO与通道号对应查看上表)//高级定时器1中断初始化//arr:自动重装值。//psc:时钟预分频值.
2020-11-07 11:21:33
7207
1
原创 10.1 复习函数
首先,什么是函数?函数(function)是完成特定任务的独立程序代码单元。语法规则定义了函数的结构和使用方式。虽然C中的函数和其他语言中的函数、子程序、过程作用相同,但是细节上略有不同。一些函数执行某些动作,如printf()把数据打印到屏幕上;一些函数找出一个值供程序使用,如strlen()把指定字符串的长度返回给程序。一般而言,函数可以同时具备以上两种功能。为什么要使用函数?首先,使用函数可以省去编写重复代码的苦差。如果程序要多次完成某项任务,那么只需编写一个合适的函数,就可以在需要时使用这个函数
2020-09-30 15:27:29
362
原创 第十 函数
C语言学习栏目目录本章介绍以下内容:关键字:return运算符:*(一元)、&(一元)函数及其定义方式如何使用参数和返回值如何把指针变量用作函数参数函数类型ANSI C原型递归如何组织程序?C的设计思想是,把函数用作构件块。我们已经用过C标准库的函数,如printf()、scanf()、getchar()、putchar()和 strlen()。现在要进一步学习如何创建自己的函数。前面章节中已大致介绍了相关过程,本章将巩固以前学过的知识并做进一步的拓展。..
2020-09-30 14:23:12
163
原创 9.3 结束键盘输入
C语言学习栏目目录目录1 、文件、流和键盘输入2 、文件结尾在9.1节程序清单中,只要输入的字符中不含#,那么程序在读到#时才会结束。但是, #也是一个普通的字符,有时不可避免要用到。应该用一个在文本中用不到的字符来标记输入完成,这样的字符不会无意间出现在输入中,在你不希望结束程序的时候终止程序。C 的确提供了这样的字符,不过在此之前,先来了解一下C处理文件的方式。1 、文件、流和键盘输入文件(file)是存储器中储存信息的区域。通常,文件都保存在某种永久存储器中(如,硬盘、U盘或.
2020-09-28 14:58:36
340
原创 9.2 缓冲区
C语言学习栏目目录如果在老式系统运行9.1节程序清单,你输入文本时可能显示如下:HHeelllloo,, tthheerree..II wwoouulldd[enter]lliikkee aa #以上行为是个例外。像这样回显用户输入的字符后立即重复打印该字符是属于无缓冲(或直接)输入,即正在等待的程序可立即使用输入的字符。对于该例,大部分系统在用户按下Enter键之前不会重复打印刚输入的字符,这种输入形式属于缓冲输入。用户输入的字符被收集并储存在一个被称为缓冲区(buffer)的临时存.
2020-09-24 16:45:16
170
原创 9.1 单字符I/O:getchar()和putchar()
C语言学习栏目目录前面文章中提到过,getchar()和 putchar()每次只处理一个字符。你可能认为这种方法实在太笨拙了,毕竟与我们的阅读方式相差甚远。但是,这种方法很适合计算机。而且,这是绝大多数文本(即,普通文字)处理程序所用的核心方法。为了帮助读者回忆这些函数的工作方式,请看程序清单8.1。该程序获取从键盘输入的字符,并把这些字符发送到屏幕上。程序使用while 循环,当读到#字符时停止。/*********************************************.
2020-09-24 16:24:50
240
原创 第九 字符输入/输出和输入验证
C语言学习栏目目录本章介绍以下内容:更详细地介绍输入、输出以及缓冲输入和无缓冲输入的区别如何通过键盘模拟文件结尾条件如何使用重定向把程序和文件相连接创建更友好的用户界面在涉及计算机的话题时,我们经常会提到输入(input)和输出(output)。我们谈论输入和输出设备(如键盘、U盘、扫描仪和激光打印机),讲解如何处理输入数据和输出数据,讨论执行输入和输出任务的函数。本章主要介绍用于输入和输出的函数(简称I/O函数)。I/O函数(如printf()、scanf()、getch.
2020-09-23 17:27:18
151
原创 8.7 多重选择:switch和break
使用条件运算符和 if else 语句很容易编写二选一的程序。然而,有时程序需要在多个选项中进行选择。可以用if else if...else来完成。但是,大多数情况下使用switch语句更方便。下程序清单演示了如何使用switch语句。该程序读入一个字母,然后打印出与该字母开头的动物名。/************************************************************************功能: 使用switch语句
2020-09-15 13:59:16
1250
原创 8.6 循环辅助:continue和break
C语言学习栏目目录目录1 continue语句2 break语句一般而言,程序进入循环后,在下一次循环测试之前会执行完循环体中的所有语句。continue 和break语句可以根据循环体中的测试结果来忽略一部分循环内容,甚至结束循环。1 continue语句3种循环都可以使用continue语句。执行到该语句时,会跳过本次迭代的剩余部分,并开始下一轮迭代。如果continue语句在嵌套循环内,则只会影响包含该语句的内层循环。下程序清单中的简短程序演示了如何使用continue。
2020-09-11 09:48:41
884
原创 8.5 条件运算符:?:
C语言学习栏目目录C提供条件表达式(conditional expression)作为表达if else语句的一种便捷方式,该表达式使用?:条件运算符。该运算符分为两部分,需要 3 个运算对象。回忆一下,带一个运算对象的运算符称为一元运算符,带两个运算对象的运算符称为二元运算符。以此类推,带 3 个运算对象的运算符称为三元运算符。条件运算是C语言中唯一的三元运算符。下面的代码得到一个数的绝对值:x = (y < 0) ? -y : y;在=和;之间的内容就是条件表达式,该语句的意思.
2020-09-10 09:59:46
539
原创 C语言字符串字符统计strlen与字符串比较strncmp
这几天写了个项目,需要用到字符串比较,又没有<string.h>库,所以自己写了一个函数。代码如下字符串统计int my_strlen(const char *StrDest){ int i; i=0; //统计字符串字数,从字符串第一个字符起计数,只遇到字符串结束标志'\0’停止计数 while((*StrDest++)!='\0') { i++; } return i;}字符串
2020-09-07 11:13:53
563
原创 8.4 一个统计单词的程序
现在,我们可以编写一个统计单词数量的程序(即,该程序读取并报告单词的数量)。该程序还可以计算字符数和行数。先来看看编写这样的程序要涉及那些内容。首先,该程序要逐个字符读取输入,知道何时停止读取。然后,该程序能识别并计算这些内容:字符、行数和单词。据此我们编写的伪代码如下:读取一个字符当有更多输入时递增字符计数如果读完一行,递增行数计数如果读完一个单词,递增单词计数读取下一个字符前面有一个输入循环的模型:while ((ch = getchar()) != STOP){...}这
2020-09-06 11:56:40
1566
7.1 while循环 Project1.zip
2020-07-07
6.4 带参数的函数 Project2.zip
2020-07-07
6.3 类型转换 Project1.zip
2020-07-07
6.2 表达式和语句 day072.zip
2020-07-06
6.1 特殊运算符 day07.zip
2020-07-06
float、double类型介绍.zip
2019-12-31
va_x安装.zip
2019-12-16
wpf页面参数传递,源码
2022-07-14
单字符IO getchar()和putchar().7z
2020-09-24
多重选择:switch和break.7z
2020-09-15
8.6 循环辅助:continue和break.7z
2020-09-11
8.2 if else语句.7z
2020-09-01
Keil.STM32F1xx_DFP.1.0.5.pack.7z
2020-08-31
7.7 出口条件循环:do while.7z
2020-07-24
7.6 逗号运算符 Project1.7z
2020-07-24
7.4 for循环 Project1.zip
2020-07-17
错误 10 error LNK1281: 无法生成 SAFESEH 映像。
2016-12-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人