c++
文章平均质量分 52
斜杠青年/
人类的幸福与欢乐在于奋斗,而最有价值的是为理想而奋斗.
展开
-
将十六进制转换为对应的字符串,将字符串转换为对应的十六进制字符串,
/*************************************功能:将输入的字符串转成对应的HEX 16进制格式作者:贺远日期:2019.05.15参数:hexdata 要转换的HEX数字 n 字符串长度, buff 输出缓存区返回值:无例:0x814439 转换为 :"814439"(HEX格式)*******************...原创 2019-09-28 19:51:52 · 2387 阅读 · 0 评论 -
用一个for循环打印N维数组
/******************************************************用一个for循环打印N维数组一维就不说了二维: for(int i=0;i<x*y;i++) { printf("%d ",a[i/y][i%y]); }三维: for(int i=0;i<x*y*z;i++) ...原创 2018-04-23 21:42:21 · 1078 阅读 · 0 评论 -
C++实现词法分析器(学习)
参考网上程序,我把生成的数据存在文件里,能分析C语言的源程序#include<fstream> #include <iostream> #include <stdlib.h> #include <stdio.h> using namespace std; string KEYWORD[17]={"if","else","原创 2018-04-17 11:16:38 · 3298 阅读 · 0 评论 -
解决:invalid application of `sizeof' to incomplete type `char[] '错误
最近做一个DIY玩具,遇到的这个问题: 解决:invalid application of sizeof' to incomplete typechar[] ‘错误//a.c文件#include "a.h" char array[]={0XED,0X34,0X40,0X34};//a.h文件#ifndef _A_H#define _A_H#define size (...原创 2018-03-28 18:34:22 · 27155 阅读 · 3 评论 -
C语言基本概念笔记《七》之文件及操作文件的常用函数
一·文件概述1.文件的操作流程1.1建立/打开文件 1.2读文件/写文件 1.3关闭文件2.文件和内存的交互处理**2.1文件在外存中:(system I/O)//非缓冲文件系统,不提供缓冲区 2.2文件在内存中:(standard I/O)//缓冲文件系统,提供缓冲区二·文件类型指针1.文件类型的指针的结构体(VC6里面的):#ifndef _...原创 2018-03-26 23:19:03 · 273 阅读 · 0 评论 -
C语言基本概念笔记《二》之 语句
一·数据的输入输出:1.①格式化输入: scanf(“%d %d”,&a,&b); 输入:2 3 (注意,空格多个或一个都视为一个) scanf(“%d ,%d”,&a,&b); 输入:2 3 或2,3都可以 scanf(“%...原创 2018-03-21 21:06:01 · 192 阅读 · 0 评论 -
详解链表的创建,插入,删除,遍历
开始前废话几句,前几天做C语言笔记时,写到链表这块,懒得写链表的基本操作了,只浏览了一下概念,拖了好几天,今天打算把它完成,期间遇到了一个困惑,在这里再一次对马博老师表示感谢!//为了方便理解,链表的节点的结构体写简单点:typedef struct DATE{ int num; struct DATE *next;}date;//用date代替typedef str...原创 2018-03-31 20:54:09 · 417 阅读 · 0 评论 -
C语言基本概念笔记《六》之位运算及混合编程
一·位运算1.主要有以下六种: ①& 按位与 ②| 按位或 ③^ 按位异或 ④~ 按位取反 ⑤<< 按位左移 ⑥>> 按位右移二·C语言与会变语言混合编程1. 只要在汇编指令前面加上asm就可以了: ①asm AND a1,ofeh ②asm { AND a1,ofeh MOV a2,80h }原创 2018-03-25 17:09:15 · 186 阅读 · 0 评论 -
C语言基本概念笔记《五》之指针与链表
一·链表的特点1.对存储空间用则申请,不用则释放 2.插入删除只需少量操作 3.大大提高空间,时间的利用率二·链表的结构1.申请空间: 用malloc函数,它包含在stdlib.h文件里。 2.分析结构: 链表简单点说就是把一个一个的节点串起来,申请一个节点空间就串一个节点空间。但是他们的物理地址可能连续可能不连续,但是他们都存储在堆区。 3.节点的数据结构: 上面提到的节点的结构体类原创 2018-03-25 15:34:49 · 225 阅读 · 0 评论 -
C语言基本概念笔记《三》之指针,数组,动态数组的创建
一·指针1. 地址运算符& :只能取内存中变量的地址。 取值运算符*:一般和指针合用。作用是获取指针所指向的变量的值。 指针也是一个变量:指针变量(对应的,整型变量等),它里面存的是变量的地址 int a; int *p;//定义 p= & a;//把a的地址存到p里。即p指向变量a. 由 *p=5;可使a=5;2.&* 与*&的区别: ...原创 2018-03-23 08:32:44 · 890 阅读 · 0 评论 -
C语言基本概念笔记《四》之指针与函数,结构体,共用体,枚举
一·函数1.函数的返回值类型和return中表达式类型不一致时,以函数的类型为准。 2.函数的参数: ①形参在编译时不分配存储空间,无初值,只有在函数调用时为其临时分配空间,接受实参值,函数调用结束,内存就被释放, ②数组元素作为参数和普通变量一样 ③数组名作为参数,传递的实际上是数组首地址。被调函数可以使用数组的元素值,而且可以改变实参数组元素的值 int fff(int a[...原创 2018-03-25 09:20:11 · 712 阅读 · 1 评论 -
C语言基本概念笔记《一》之标识符与变量的输入输出
有些不常用的概念都模糊了,等到面试时候,面试官提问,自己连最基础的概念都不清楚,所以我觉得对基本概念清楚是扎实基础的第一步。 下面是一些概念(字符集,运算符啥的我就不写了):一·字符,变量,标识符等1. 标识符:由关键字(32个关键字,int if ),预定义标识符 (库函数,预编译命令),用户标识符(自己定义的变量,函数名) 注意:标识符必须由英文字母或者...原创 2018-03-21 20:20:36 · 653 阅读 · 0 评论 -
在排序数组中找出给定数字出现的次数
这个思路不是很难,由于平时练习甚少,还是在细节浪费了一些时间,以后注意细节 :先用二分法找到给定数字,然后找它左面出现几次,右面出现几次,然后相加#include<stdio.h>int main(void){ int n,a[]={1,2,2,3,4,4,4,4,4,5,6,7,7,7,7,8,9,10,11,11,11,12,13}; ...原创 2018-04-23 22:39:30 · 997 阅读 · 0 评论 -
求数组中出现次数大于一半的数字
思路: 是要找的元素,计数器加一,不是则减一,当计数器为0,说明相同的元素个数已经被不同元素个数抵消完,则换下一个元素,最后剩下的就是最多的那个数字 相当于不断从数组里删除不同的两个数(不管包不包含要找的过半数),到最后剩下的将全是相同的数字了,即要找的数字#include<stdio.h>int main(void){ int arr[]={1,1,1,1,...原创 2018-05-02 21:26:33 · 408 阅读 · 0 评论 -
错误:重复定义变量的解决办法——不要在头文件里定义变量
在写C代码的时候,经常需要在头文件中包含有些预定义的信息。比如一些结构体的声明,外部变量,函数的声明等。有时候觉得有必要在头文件中定义一些变量,这样在源文件中就不需要定义了。但是这样做,有很大的问题。比如[cpp] view plain copy //test.h 1 #ifndef _TEST_H 2 #define _TEST_H 3 int x; 4 c...转载 2018-05-28 16:21:57 · 3072 阅读 · 1 评论 -
JLINK 与STM32的SWD连接接线方式
有些开发板只能用Jlink烧写程序,但是没有提供标准Jlink接口,我们可以使用下面的办法,烧写:原创 2018-08-19 10:08:58 · 39886 阅读 · 0 评论 -
volatile的概念,用法讲解
转自:https://www.cnblogs.com/reality-soul/p/6140192.html.volatile的本质:1> 编译器的优化在本次线程内, 当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中;以后,再取变量值时,就直接从寄存器中取值;当变量值在本线程里改变时,会同时把变量的新值copy到该寄存器中,以便保持一致。当变量在...转载 2018-08-18 16:54:33 · 626 阅读 · 0 评论 -
32位,64位编译器下c语言数据类型对应字节数
转自:https://blog.csdn.net/wocjj/article/details/7446703一、程序运行平台 不同的平台上对不同数据类型分配的字节数是不同的。 个人对平台的理解是CPU+OS+Compiler,是因为: 1、64位机器也可以装32位系统(x64装XP); 2、32位机器上可以有16/32位的编译器(...转载 2018-08-18 16:11:05 · 3455 阅读 · 0 评论 -
全局变量与静态全局变量的区别
一·全局变量作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量。 二·静态全局变量是显式用static修饰的全局变量,作用域是声明此变量所在的文件,其他的文件即使用extern声明也不能使用。这是extern声明全局变量的用法...原创 2018-08-08 22:05:32 · 2757 阅读 · 0 评论 -
extern声明全局变量的用法
这篇文章主要讲解一下extern声明全局变量的一些用法,虽然知识点比较浅显,但是却容易犯错,仅与那些初学C++的朋友分享,希望没有让大牛们见笑。extern最基本的用法是声明全局变量的。这里需要注意两点,一是“声明”,二是“全局变量”;我们先来分析这两个概念。声明:声明和定义是有区别的。声明不等于定义,声明只是指出了变量的名字,并没有为其分配存储空间;定义指出变量名字同时为变量分配存储空间,定...转载 2018-08-08 21:53:54 · 32363 阅读 · 7 评论 -
char[0]在结构体中的应用
struct MyData { int nLen; char data[0];}; 在结构中,data是一个数组名;但该数组没有元素;该数组的真实地址紧随结构体MyData之后,而这个地址就是结构体后面数据的地址(如果给这个结构体分配的内容大于这个结构体实际大小,后面多余的部分就是这个data的内容);这种声明方法可以巧妙的实现C语言...转载 2018-08-18 10:14:50 · 843 阅读 · 0 评论 -
C语言中const用法解析
const修饰的变量存储位置,和不用const修饰的没区别!!!!!!转自:http://blog.csdn.net/xingjiarong/article/details/47282255关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变,我想一定有人有这样的疑问,C语言中不是有#define吗,干嘛还要用const呢,我想事物的存在一定有它...转载 2018-08-12 16:45:16 · 13697 阅读 · 0 评论 -
C语言如何将数据转化为字符串格式
函数功能:把格式化的数据写入某个字符串函数原型:int sprintf( char *buffer, const char *format [, argument] … );返回值:字符串长度(strlen)例子:char* who = "I";char* whom = "CSDN";sprintf(s, "%s love %s.", who, whom); //产生:"I...转载 2018-07-28 14:15:03 · 5111 阅读 · 0 评论 -
C语言常见经典面试题 以及 C语言面试宝典
1 预处理问题1:什么是预编译?何时需要预编译?答:预编译又称预处理,是整个编译过程最先做的工作,即程序执行前的一些预处理工作。主要处理#开头的指令。如拷贝#include包含的文件代码、替换#define定义的宏、条件编译#if等。.何时需要预编译:1、总是使用不经常改动的大型代码体。2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,...转载 2018-07-28 14:06:30 · 15371 阅读 · 0 评论 -
什么是回调函数
1 定义和使用场合回调函数是指 使用者自己定义一个函数,实现这个函数的程序内容,然后把这个函数(入口地址)作为参数传入别人(或系统)的函数中,由别人(或系统)的函数在运行时来调用的函数。函数是你实现的,但由别人(或系统)的函数在运行时通过参数传递的方式调用,这就是所谓的回调函数。简单来说,就是由别人的函数运行期间来回调你实现的函数。这一设计允许了底层代码调用在高层定义的子程序(如图1-1所...转载 2018-08-03 17:33:36 · 66610 阅读 · 2 评论 -
C语言将32位数字转换为四个8位的数字,或者字节
转化为16位或其他的类似:#include<stdio.h> int main(){ unsigned long long x=0x11223344; int i,a[4];// char a[4];//转换为字节 for(i=0;i<4;i++) { a[i]=(x>>(i*8))& 0xFF; printf("%x\n"...原创 2018-06-15 20:46:28 · 67655 阅读 · 0 评论 -
struct(结构体)的长度以及字节对齐方式
struct是一种复合数据类型,一般而言struct的sizeof是所有成员对齐后长度相加的长度,下面分析一下:1.//我的电脑是64位#include<stdio.h>struct sum{ short d;};int main(void){ sum s; int summ; summ=sizeof s; prin...原创 2018-03-12 18:08:50 · 3769 阅读 · 0 评论 -
sizeof与strlen的区别
这俩个我经常会混淆,今天在此总结一下,以后忘记了可以直接复习: 1.首先他两个类型不同,sizeof是关键字,而strlen是函数。 2.sizeof的参数可以是类型,或者函数,而strlen只能用char * 做参数 例如:int g(); sizeof(g()); //sizeof(g())的值等于 sizeof(int) 注意:sizeof后面如果是类型必须加括号,是变量的话可以...原创 2018-03-12 17:42:48 · 205 阅读 · 0 评论 -
自定义复制构造函数
c++类的创建过程中,如果你只是创建一个空类,系统会自动添加默认构造函数,以及一个默认复制构造函数。在主函数中:复制构造函数只能用于对象的初始化,初始化的发生有以下三种情况:①当一个对象的副本被作为参数传递给函数时,②当用同一个类的对象给另一个新对象赋值时时,③对象作为函数的返回值my_string s1(),s3(5);//调用构造函数s3=s1;//调用复制用算符(原创 2017-05-24 16:00:09 · 364 阅读 · 0 评论 -
解决内存泄漏问题
编译、运行下列程序后。从输出结果发现没有调用 class Y 的析构函数,出现了内存泄漏。请尝试修改class X类的定义解决这个内存泄露问题。并提交定义class X类的代码。class X类的定义如下:class X{public: X() { p = new int[2]; cout << "X(). "; } ~X() { delete [] p; cou原创 2017-05-24 15:57:09 · 665 阅读 · 0 评论 -
PTA.5-1 复数相加
5-1 复数相加 (14分)题目:一个复数类,运算符重载 + ,实现复数和复数的相加。输入一组复数,每行一个复数,直到输入0结束。 输出这组复数的结果。提示: 复数的输入和输出符合数学书写规范输入示例3+2i2+3i0输出示例5+5i代码:// 练习一.cpp : 定义控制台应用程序原创 2017-05-10 19:55:17 · 3255 阅读 · 2 评论 -
PTA.重载下标运算符[ ]
4-1 重载下标运算符[ ] (10分)这段程序实现了安全数组。 请认真阅读程序并补全程序使之能正确执行。裁判测试程序样例:在这里给出函数被调用进行测试的例子。例如:#include #include using namespace std;const int SIZE = 3;class atype { int a[SIZE];public:原创 2017-05-10 19:54:41 · 918 阅读 · 0 评论 -
c++string类库的一些用法《一》
1.string类对象的插入insert方法,#include #include int main (){ std::string str="to be question"; std::string str2="the "; std::string str3="or not to be"; std::string::iterator it; //原创 2017-03-26 22:03:40 · 1328 阅读 · 0 评论 -
一维数组,二维数组初始化
1static int a[10]={0,1,2,3,4,5,6,7,8,9};经过上面的定义和初始化后,a[0]=0,a[1]=1,…,a[9]=9。(2)初始化时可以只对一部分元素赋初值。例如:1static int a[10]=原创 2017-03-26 20:51:02 · 1693 阅读 · 0 评论 -
Max函数模板
4-2 Max函数模板 创建一个函数模板Max( ),该模板返回两个参数中的最大值,例如:Max(3,4)返回4Max('c','a')返回'c'一组输入-21252 2输出样例:在这里填写相应的输出3#include #include using namespace std;//你提交的代码将被嵌入到这里templateT M原创 2017-04-12 11:14:50 · 1476 阅读 · 0 评论 -
创建函数模板实现求数组中的最小元素
创建函数模板实现求数组中的最小元素 创建一个函数模板实现求数组中的最小元素,在主函数将分别使用该模板求整形数组和double型数组中的最小元素并输出。输入:6 (整型数组中的元素个数)8 3 4 1 6 9 (整型数组中的元素)5 (双精度浮点数数组中的元素个数)2.7 3.1 9.8 5.3 7.6 (双精度浮点数数组中的元素)原创 2017-04-12 11:11:02 · 4609 阅读 · 0 评论 -
蓝桥杯,历届试题 核桃的数量
历届试题 核桃的数量 时间限制:1.0s 内存限制:256.0MB问题描述小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:1. 各组的核桃数量必须相同2. 各组内必须能平分核桃(当然是不能打碎的)3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛原创 2017-03-26 16:42:56 · 705 阅读 · 0 评论 -
蓝桥杯,第一题.购物单
购物单 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板忙的时候经常让小明帮忙到商场代为购物。小明很厌烦,但又不好推辞。 这不,XX大促销又来了!老板夫人开出了长长的购物单,都是有打折优惠的。 小明也有个怪癖,不到万不得已,从不刷卡,直接现金搞定。 现在小明很心烦,请你帮他计算一下,需要从取款机上取多少现金,才能搞定这次购物。 取款机只能提原创 2017-04-09 22:47:42 · 3339 阅读 · 5 评论 -
字符串替换
字符串替换将文本文件中指定的字符串替换成新字符串。 由于目前的OJ系统暂时不能支持用户读入文件,我们编写程序从键盘输入文件中的内容,当输入的一行为end时,表示结束。end后面有两个字符串,要求用第二个字符串替换文本中所有的第一个字符串。输入格式:Xi’an Institute of Posts and Telecommunications is co-design原创 2017-03-22 21:32:28 · 684 阅读 · 0 评论 -
C++中,get getline gets 用法
C++中,get getline gets 用法感觉写的挺好的,希望对大家有用(2012-03-21 10:16:47) 1、cin 2、cin.get() 3、cin.getline() 4、getline() 5、gets() 6、getchar() 1、cin>> 用法1:最基本,也是最常用的用法,输入一个数字: #转载 2017-05-17 20:24:24 · 715 阅读 · 0 评论