![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++
C/C++编程
perseverance52
兴趣是最好的老师,学习需要持之以恒,才能有所成。书山有路勤为径,学海无涯苦作舟。
展开
-
通过指针修改带const的只读变量
使用二级指针修改带const的只读常量修饰词带const的常量一般是作为可读常量,不容易被改变其赋值,但是使用二级指针可以改修初始值虽然编译有报警提示,但是还是可以编译通过的。#include <stdio.h>int main(){const int n = 88, m = 77; int *pal = &n; int **pal2 = &pal; **pal2 = 66; printf("\n%d", n);}...原创 2021-08-02 12:20:21 · 511 阅读 · 0 评论 -
C语言实现两个数交换
C语音实现两个数的交换最优方案实现方式一:通过指针变量,异或处理#include <stdio.h>void swap(int *x, int *y){ int temp = (*x) ^ (*y); //设a为临时变量,存储异或值 *y = temp ^ (*y); //相当于b=a *x = temp ^ (*x); //相当于a=b}void main(){ int a = 33; int b = 66; int *pa原创 2021-08-09 12:39:08 · 529 阅读 · 0 评论 -
if条件语句里数据类型的逻辑判断与分析
if条件语句里数据类型的逻辑判断与分析原创 2021-03-10 14:38:52 · 3925 阅读 · 0 评论 -
++和--从for循环中的资源开销来理解之间的差异
++和--从for循环中的资源开销来理解之间的差异原创 2022-06-06 09:45:52 · 270 阅读 · 0 评论 -
搭建VC2010 开发环境,创建《C语言实现俄罗斯方块游戏》教程
搭建VC2010 开发环境,创建《C语言实现俄罗斯方块游戏》教程原创 2022-02-15 15:57:35 · 3721 阅读 · 0 评论 -
单片机逻辑取反和按位取反差异
单片机逻辑取反和按位取反差异原创 2022-01-28 15:40:52 · 2621 阅读 · 0 评论 -
if (i++>3)与 if (++i>3)的区别
if (i++ >5)与 if (++i >5)的区别if (i++ >5)是先判断在自增if (++i >5)//先自增再判断void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); Serial.begin(9600);}// the loop function runs over and over again for原创 2022-01-21 22:01:58 · 2435 阅读 · 2 评论 -
51单片机标准函数stdlib.h利用rand随机数闪烁led+Proteus仿真
rand函数原创 2021-12-26 15:26:56 · 1533 阅读 · 0 评论 -
【基础知识】C51单片机变量定义
【基础知识】C51单片机变量定义摘自《IAP15W4K58S4单片机的存储器与应用编程》主编:丁向荣;主审:姚永平;在使用一个变量或常量之前,必须先定义该变量或常量,指出其数据类型和存储器类型,以便编译系统为其分配相应的存储单元。在C51中定义变量的格式为:[存储种类]数据类型[存储器类型]变量名表1. auto int data x;2. char code y=0x22;行号1中,变量x的存储种类、数据类型、存储器类型分别为auto、int、data。行号2中,变量y只定义了数原创 2021-12-19 11:09:55 · 4506 阅读 · 0 评论 -
【单片机工具】单片机小精灵
单片机小精灵原创 2021-12-05 17:28:14 · 3386 阅读 · 2 评论 -
Arduino - 看门狗定时器的使用介绍
Arduino - 看门狗定时器的使用介绍看门狗定时器(WDT,Watch Dog Timer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个数字,程序开始运行后看门狗开始计数。如果程序运行正常,过一段时间CPU应发出指令让看门狗置零,重新开始计数。如果看门狗增加到设定值就认为程序没有正常工作,强制整个系统复位。该看门狗定时器有点像ESP32/8266的Ticker库的定时功能.wdt_enable(timeout) //看门狗启动,并设置超时时间// 0=15(16)原创 2021-11-25 17:06:22 · 1707 阅读 · 0 评论 -
数组指针和指针数组的区别
数组指针和指针数组的区别谈 数组指针和指针数组两个概念的时候先对优先级的知识进行温故知新,不然直接上手去记忆很容易混淆。运算符优先级() > [ ] > *数组指针数组指针(也称行指针)定义 int (*p)[n];( )优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。(记忆方法:谁大谁在最后的原则::数组【n】指针(*p).如要将二维数组赋给一指针,应这样赋值:原创 2021-10-07 10:44:17 · 110 阅读 · 0 评论 -
数据类型的取值范围和单片机的关系
数据类型的大小和单片机的关系8种基本数据类型4种整形:byte,short),int,long2种浮点类型:float,double1种Unicode编码的字符单元的字符型:char1中Boolean类型:boolean32位单片机中各数据类型的数值范围ESP8266、ESP32、STM32、8位单片机中各数据类型的数值范围8位的单片机:AT89C51、Arduino UNO(328P)、...原创 2021-10-05 21:42:42 · 1090 阅读 · 0 评论 -
C语言数据边界和printf传入
C语言数据边界和printf传入实例代码#include <stdio.h>int main(){ unsigned char a = 200; unsigned char b = 100; unsigned char c = 0; c = a + b; printf("%d %d", a + b, c); return 0;}打印结果说明:printf在传入参数的时候,是根据具体的数据类型来判断采用什么数据类型来接收。如果是整形会默认传入四字节,所以a+原创 2021-10-05 21:08:09 · 268 阅读 · 0 评论 -
VSCode在打印输出sizeof()时的警告
VSCode在打印输出sizeof()时的警告在VSCode里面,数据类型"long long unsigned int" 格式化输出表达格式:%I64u,int数据sizeof()打印输出,输出类型不匹配%d的报警信息warning: format '%d' expects argument of type 'int', but argument 2 has type 'size_t' {aka 'long long unsigned int'}%ld输出长整形warning:原创 2021-09-21 09:02:08 · 2101 阅读 · 0 评论 -
C语言整个学习框架思维导图
C语言整个学习框架思维导图一张图带给你对整个C语音学习之路有一个明了的印象框架!原创 2021-09-21 07:59:08 · 952 阅读 · 0 评论 -
修饰词const和指针结合
修饰词const和指针结合const int * p:指向整形常量 的指针,它指向的值不能修改int * const p:指向整形的常量指针 ,它不能在指向别的变量,但指向(变量)的值可以修改。const int *const p: 指向整形常量 的常量指针 。它既不能再指向别的常量,指向的值也不能修改。const int * p#include <stdio.h>int n = 88, m = 77;const int *pa = &n;int main(){原创 2021-08-02 11:53:53 · 90 阅读 · 0 评论 -
字符数组和字符串指针区别
字符数组和字符串指针区别字符数组字符数组是由于若干个数组元素组成的,它可用来存放整个字符串。字符串指针本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以该首地址为首的一块连续的内存空间中并以‘\0’作为串的结束。#include <stdio.h>#include <string.h>int main(){ char s1[] = "hello"; char *s2 = "hello"; printf("sizeof(s1) : %d,%原创 2021-08-03 10:15:55 · 605 阅读 · 0 评论 -
动态内存函数:malloc,calloc,realloc的介绍
动态内存函数:malloc,calloc,realloc的介绍malloc这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。类型:动态内存分配函数,被包含在malloc.h,stdlib.h函数原型:void *malloc(unsigned int num_bytes),一个参数功能:分配长度为num_bytes字节的内存块,申请的内存值不确定返回值:如果分配成功则返回指向被分配起始地址的指针,否则返回空指针NULL。返回类型是void型,使用强制类型转换 int *p=(原创 2021-09-05 11:55:33 · 277 阅读 · 0 评论 -
C++取字符串长度函数三种方法
C++取字符串长度函数三种方法实例代码#include <iostream>#include <cstring> //调用strlen()函数需要使用该文件using namespace std;int main(){ string str = "Test string"; char *ch = (char *)"perseverance51"; //需要强制类型转换 char const *ch2 = "Are you OK!"; cout <&原创 2021-09-05 09:58:47 · 6839 阅读 · 0 评论 -
运行首个VSCode 搭建的C++示例程序
首个VSCode 搭建的C++示例程序搭建视频教程 在VSCode搭建C/C++环境【秒杀Visual C++/Dev C++] 示例程序using namespace std;int main(){ string str_1, str_2; cout << "hello world !"; cout << "please your f原创 2021-09-04 21:54:07 · 336 阅读 · 1 评论 -
expression must have integral type
C++ 语法错误:expression must have integral typeexpression must have integral type OLED_ShowString(00,10,(u8*)"Temp:",12); OLED_ShowNum(45,10,Temperature/10,2,12);//取商正常 OLED_ShowNum(68,10,Temperature%10,1,12);//这句取余报错正确书写方式: OLED_ShowString(00,1原创 2021-04-20 21:02:54 · 4048 阅读 · 0 评论