自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 MATLAB R2021a离线下载并安装硬件支持包

第三方包:Simulink Coder Support Package for STMicroelectronics Nucleo Boards。链接:https://pan.baidu.com/s/1mBcw1ESQcww6olXYBwrDJw。1、或许需要重启下MATLAB才能看到新安装的支持包;最后搜索并下载你想安装的包即可,下载路径无所谓。2、或许其他支持包的离线安装方法雷同。MATLAB版本: R2021a。4. 选择支持包安装即可。第三方包CMSIS下载失败。,离线下载并安装支持包。

2022-09-30 10:45:06 12191 8

原创 C++编译器错误C3848

案例描述:在set容器中插入自定义类型,并使用仿函数指定排序方式。#include <iostream>using namespace std;#include <set>#include <string>class Person{public: Person(string name, int age) { this->m_name = name; this->m_age = age; }public: string m.

2022-05-26 09:10:55 1857 3

原创 C-文件读写相关

1、fputc and fgetc: 按顺序单个读写int main(){ // 绝对路径 // file* pf = fopen("c:\\users\\fami7z\\source\\repos\\文件学习\\test.txt", "r"); // 相对路径 FILE* pf = fopen("test.txt", "r"); if (pf == NULL) { perror("fopen"); return 1; } // write into file: fputc

2022-04-15 10:41:05 136

原创 C-字符串函数(续)strtok函数的使用和模拟实现及strerror/perror的使用

六、strtokchar * strtok ( char * str, const char * delimiters );Split string into tokensA sequence of calls to this function splitstrinto tokens, which are sequences of contiguous characters separated by any of the characters that are part ofdelimi...

2022-04-08 23:57:33 1015

原创 C-库函数 qsort 的使用及模拟实现

#include <stdio.h>#include <stdlib.h>#include <string.h>struct Stu{ char name[20]; int age;};// 冒泡排序 -> 不能对任意类型进行排序void bubble_sort(int *p,int s){ // 趟数 for (int i = 0; i < s - 1; i++) { // 每趟 for (int j = 0; j &l.

2022-04-06 17:20:05 87

原创 C-回调函数

回调函数:通过函数指针调用的函数。把函数的指针(地址) 作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。...

2022-04-05 18:22:42 234

原创 C-函数指针数组及应用

数组是一个存放相同类型数据的存储空间,比如整型指针数组:int* arr[10];// 数组的每个元素是 int*函数指针数组:存放函数地址的数组。定义方法:int (*parr1[10])(int, int);int (* )(int, int); // 参数为两个int,返回类型为int的函数指针类型。理解:parr1 先和 [ ] 结合,说明 parr1 是数组,数组内容是 int (* )(int, int) 类型的函数指针。简单应用:转移表Example:.

2022-04-03 11:44:09 300

原创 C-浮点型数据在内存中的存储

(一)浮点数在计算机内部的存储方法:根据国际标准IEEE(电气和电子工程协会),任意一个二进制浮点数V可以表示成下面的形式:(-1)^s*M* 2^E(-1)^s表示符号位,当s=0,V为正数; 当s=1,V为负数。M表示有效数字,大于等于1,小于2。2^E表示指数位。举例来说︰十进制的5.5,写成二进制是101.1,相当于1.011x2^2。那么,按照上面V的格式,可以得出s=0, M=1.011,E=2。十进制的-5.0,写成二进制是-101.0,相当于-1.01x2^2。.

2022-04-02 10:42:28 97

原创 C-整型数据存储之大小端模式

1、何谓大、小端模式?例如一个16bit的short型x,在内存中的地址为0x0010,x的值为0x1122,那么0x11为高字节,0x22为低字节。大端模式:字节序与地址序相反,即0x11放在0x0010中、0x22放在0x0011中;小端模式:字节序与地址序相同,即0x22放在0x0010中、0x11放在0x0011中。2、何来大小端模式之分?这是因为再计算机系统中,是以字节为单位的,每个地址都对应着一个字节,一个字节为 8 个 bit 。但是在C语言在中除了 8 bit 的char

2022-03-27 08:10:00 1129 1

原创 C-模拟实现库函数strcpy(代码的优化练习)

#include <stdio.h>// first editionvoid my_strcpy(char* dest, char* src){ while (*src != '\0') { *dest = *src; dest++; src++; } *dest = *src;}int main(){ char arr1[20] = "123456789"; char arr2[] = "fami"; my_strcpy(arr1, arr2); /.

2022-03-26 11:00:52 311

原创 C - const 修饰指针变量

const 修饰指针变量的时候:1、const 如果放在 * 的右边,修饰的是指针变量 p,表示指针变量不能被改变,但指针指向的内容可以被改变。int main(){ const int num = 10; //num = 20; //err int* const p = &num; int n = 100; *p = 20; //ok //p = &n; //err return 0;}2、const 如果放在 * 的左边,修饰的是 *p,表示指针指向的

2022-03-26 10:09:05 797

原创 C-栈区内存的使用习惯(调试练习)

以上代码运行会陷入死循环,调试发现 i 和 arr[12] 的地址相同!若先创建 arr,再创建 i调试发现此时i 和 arr[12] 的地址不同!

2022-03-26 08:50:40 83

原创 C-参数压栈

#include <stdio.h>struct S{ char subject[20]; int points;};struct Stu{ struct S score; char name[20]; int age; char id[20];};void print1(struct Stu p){ printf("%s %d %s %s %d \n", p.name, p.age, p.id, p.score.subject, p.score.points).

2022-03-25 15:19:44 156

原创 C-指针运算

1、指针 +- 整数2、指针 - 指针(指针 +指针没有意义,类似于日期+日期)3、指针的关系运算实例1:实例2:int main(){ int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; int* pStart = arr; int* pEnd = arr + 9; while (pStart <= pEnd) { printf("%d ", *pStart); pStart++; } printf("\n");...

2022-03-24 11:48:59 134

原创 C-野指针

概念:野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)野指针成因1、指针未初始化#include <stdio.h>int main(){ int* p; //局部变量指针未初始化,默认为随机值(无访问权限) *p = 10; //非法操作 return 0;}2、指针越界访问#include <stdio.h>int main(){ int arr[10] = { 0 }; int* p =

2022-03-24 10:48:42 1075

原创 C-指针类型的意义

决定了 :1、解引用时,对(以指针所代表的地址开始的)内存空间的访问权限时多大。int a = 0x11223344; // 4个字节(byte)char* p = &a; // 1个字节(byte)*p = 0; // 此操作仅能将 a 的第一个字节改为 0,于是 a = 0x2233442、指针走一步,能走多远。int arr[] = {1,2,3,4};char* p = &arr;int i = 0;for(i=0; i<4;

2022-03-24 00:04:48 75

原创 C-隐式类型转换

C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符(char)和短整型(short)型操作数在使用之前被转换为普通整型,这种转换称为整型提升。整型提升的意义:表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度一般就是 int 的字节长度,同时也是CPU的通用寄存器的长度。因此,即使两个 char 类型的相加,在CPU执行时实际上也要先转换为CPU内整型操作数的标准长度。通用CPU(general-purpos

2022-03-23 12:09:15 269

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除