自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(143)
  • 问答 (1)
  • 收藏
  • 关注

原创 类的封装与使用

1.类的访问控制关键字public和private,它们描述了对类成文的访问控制。使用类对象的程序都可以直接访问公有部分,但只能通过公有成员函数访问对象的私有成员。因此,公有成员函数是程序和对象的私有成员之间的桥梁,提供了对象和程序之间的接口。访问程序直接访问数据被称为数据隐藏。C++还提供了第三个访问控制关键字protected,它与类继承有关。2.类的封装2

2018-01-07 18:28:08 8818

原创 TCP/IP 层次

TCP/IP协议族是一个四层协议系统,自底而上是数据链路层、网络层、传输层和应用层。上层协议使用下层协议提供的辅助。1.数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。不同的物理网络具有不同的电气特性,网络驱动程序隐藏了这些细节,为上层协议提供了一个统一的接口。2.网络层实现数据包的选路和转发。网络层的任务就是选择中间节点(路由器),以确定两台主机之间

2017-12-10 18:17:27 3714

原创 xshell脚本

Xshell 常见脚本编译细节问题 #! /bin/bash 指令下1.关于 test命令后面空格 2.if语句后面 then前的分号 调试有时不可省略 3.参数分隔的空格问题不可忽略!不可缺少!4.将.txt文件修改成.doc类型时 只能提取文件名 通过mv命令修改文件后缀.doc 1、编写一个名为iffile程序,它执行时判断/bin目录下date文件是否存在?#!

2017-11-08 19:33:43 12268

原创 python读取excel文件生成折线图

【代码】python读取excel文件生成折线图。

2024-05-28 15:09:27 344

原创 Python读MCU串口

Python读MCU串口。

2024-04-29 16:41:26 410

原创 shell脚本

//获取系统时间NOWTIME=`date "+%Y-%m-%d %H:%M:%S"`//获取进程物理内存VMRSS=`cat /proc/$PID_AVA/status | grep VmRSS | awk '{print $2$3}'`//获取想要文件的大小file_size=`ls -al $FILE | awk '{print $5}'`

2021-03-18 10:34:30 128

原创 Makefile语法

Makefile语法ifeq ($(变量), $(findstring $(变量), 枚举变量数值空格间隔))ifeq ($(BOARD), $(findstring $(BOARD), a b c))ifeqelseendif

2021-03-18 09:38:49 174

原创 windows下安装Jupyter Notebook的安装和使用

下载python3 并安装python -m pip install --upgrade pip换源pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/pip install ipythonpip install jupyterjupyter notebook

2021-01-29 14:29:45 207

原创 n阶奇数魔方

#include <stdio.h>#include <string.h>void rubikCube(int n) { int cube[n][n],k,i,j; for (i=0; i<n; i++) { //初始化数组赋0值 for (j=0; j<n; j++) { c...

2019-05-23 09:17:55 297

原创 字典_嵌套

有时需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套包含字典的列表player1 = {'color': 'green', 'points': 5}player2 = {'color': 'yellow', 'points': 10}player3 = {'color': 'red', 'points': 15}players = [player1, play...

2018-11-19 15:37:49 408

原创 遍历字典中的所有键

一个Python字典可能包含几个或者数百万个键-值对,Python支持对字典遍历遍历所有的键-值对:使用key键、value值对和items()的for循环遍历字典 for k, v in user.items()user = { 'username': 'efermi', 'first': 'enrico', 'last': 'fermi', ...

2018-11-19 14:56:15 9195

原创 Python_字典

在Python中,字典是一系列键-值对。每个键都有一个值相关联,可以使用键来访问相关的值。与键相关联的可以是数字、字符串、列表乃至字典。字典用放在花括号{}中的一些列键-值对表示,如例alien_0 = {'color': 'green', 'points': 5}键-值对是两个相关联的值。指定键时,Python将返回与之相关联的值。键和值之间用冒号分隔,而键-值对之间用逗号分隔。...

2018-11-15 19:49:57 159

原创 python_遍历整个列表

for Python中也可以使用for循环,假设有一个魔术师名单,需要打印所有的名字,可以定义一个列表,读取一个名字存储在变量magician中,循环打印magicians = ['alice', 'david', 'carolina']for magician in magicians: print(magician)out:alicedavidcarolina...

2018-11-14 09:37:37 23992

原创 platform设备驱动

Linux2.6以后的设备中,需关心总线、设备和驱动这三个实体,总线将设备和驱动绑定。系统每注册一个设备的时候,都会寻找适配的驱动,相反一样,匹配由总线完成虚拟总线设备struct platform_device { const char * name; //设备名称 int id; struct device dev; ...

2018-09-12 16:44:10 329

原创 字符设备驱动结构

在Linux内核中,使用cdev结构体描述一个字符设备,cdev结构体的定义如下struct cdev{ //内嵌的kobject对象 struct kobject kobj; //所属模块 struct module *owner; //文件操作描述符 struct file_operations *ops; //与cdev 对应的...

2018-09-06 16:49:56 257

原创 Linux设备驱动-信号的接收

用户程序中,为了捕获信号,可以使用signal()函数设置相应的处理函数void (*signal(int signum,void(*handler))(int)))(int);如果signal调用成功,它返回一个绑定的处理函数最后一次的处理结果值,失败返回SIG_ERR使用信号实现异步通知的程序如下:#include &lt;sys/types.h&gt;#include &...

2018-09-06 10:15:20 742

原创 设备驱动程序简介

内核功能划分:1.进程管理进程管理功能负责创建和销毁进程,并处理它们和外部世界之间的连接。概括来说,内核进程管理活动就是在单个或多个CPU上实现了多个进程的抽象。2.内存管理内核在有限的可用资源之上为每个进程都创建了一个虚拟地址空间。内核的不同部分在和内存管理子系统交互时使用一组函数调用。3.文件系统Unix中几乎所有的对象等价于文件。Linux支持多种文件系统类型,也就是在无力介质上组织数据的不...

2018-06-29 13:24:11 1351

原创 Python入门第二天

合并(拼接)字符串#字符串的拼接first_name = "ada"last_name = "lovelace"full_name = first_name + " " + last_nameprint(full_name)print("Hello, " + full_name.title() + "!")message = "Hello, " + full_name.title() +

2018-02-28 12:12:28 494

原创 python入门第一天

关于python 这款比较火热的胶水语言 我开始了新年的征程。变量的命名与使用变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如,可以将变量命名为message_1,但不能将其命名为1_messag。变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greeting message 会发生错误。不要将Pyt

2018-02-24 10:11:59 181

原创 指针赋值,加减,比较

#include <stdio.h>int main(){ char a[] = "hello, world"; char *ptr = a; printf("%c\n",*(ptr+4)); printf("%c\n",ptr[4]); printf("%c\n",a[4]); printf("%c\n",*(a+4)); *(ptr+4) +=

2018-02-07 16:19:22 820

原创 复杂指针的声明

1.int a; 一个整型数 2.int *a; 一个指向整型数的指针 3.int **a; 一个指向指针的指针,它指向的指针是指向一个整型数的 4.int a[10]; 一个有10个整型数的数组 5.int *a[10]; 一个有10个指针的数组,每个指针是指向对应整型数的 6.int (*a)[10]; 一个指向有10个整型数数组的指针 7.int (*a)(

2018-02-07 15:35:11 213

原创 关于引用和指针

首先最近复习了一下C++中引用的概念。引用在C++中的内部实现是一个常指针。Type& name <–> Type* const name。C++编译器在编译过程中使用常指针作为引用的内部实现,因此引用所占用的空间大小与指针相同从使用的角度,引用会让人觉得只是一个别名,其实有自己的存储空间。这是C++为了实用性而做出的细节隐藏。谈一谈指针和引用的区别。 1.初始化要求不同。引用在创建的同时必须初始

2018-02-02 23:05:45 311

原创 面试题-旋转数组的最小数字

把一个数组最开始的若干个元素搬到数组的末尾,我们称为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组中最小的元素。例如:数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小元素为 1 。直接反应出来的是把所有数遍历一边,找出最小的数。但本题一定有特殊性,因为分成了两个递增的子数组。那么,为何不利用头尾指针采取两头往中间的临界值遍历,这种方法大大降低了时

2018-02-01 10:03:21 224

原创 面试题-利用指针引用交换字符串

#include <iostream>#include <string>using namespace std;void swap(char *&m,char *&n) { char *temp; temp = m; m = n; n = temp;}int main(){ char *x ="Hello"; char *y ="What's

2018-01-31 23:07:42 5803

原创 面试题-剑指offer-两个队列实现栈

#include #include using namespace std;template class MyStack{public: MyStack(); ~MyStack(); void MyPush(const T& value); T MyPop();private: queue mq1; queue mq2;};template MyStack::

2018-01-29 23:38:51 139

原创 面试题-剑指offer-两个栈实现队列

#include #include #include using namespace std;//模板类可以不局限一种数据类型 template class MyQueue{public: MyQueue();//默认构造 ~MyQueue();//默认析构 void appendTail(const T& node);//栈实现队列入队 T deleteHead()

2018-01-29 22:34:57 147

原创 面试题-变量引用

#include using namespace std;int main(){ int a = 1, b = 2; int &c; int &d = a; &d = b; int *p; *p = 5; return 0;}1.第9行中,编译错误。声明了一个引用类型的变量c,但是没有初始化。这里出现编译错误,因为引用类型的变量在声明的

2018-01-29 21:38:11 208

原创 C++ 通讯录-改

#ifndef _ADDRESS_H#define _ADDRESS_H#include #include #include using namespace std;class book{public: book();//默认无参构造 void AddIn(); void AddId(); void AddName(); void AddMobile(); voi

2018-01-29 21:18:15 572

原创 基数排序-改

#include #include int get_Max(int *a,int len){ int max = a[0],i; for(i=1;i<len;i++) { if(a[i]>max) max=a[i]; } return max;}void Radixing(int *a,int exp,int len){ int i; int *temp=(i

2018-01-28 22:13:38 198

原创 关于宏和内联函数

宏:1.在C程序中,可以用宏代码提高执行效率。宏代码本身不是函数,但是用起来像函数。编译预处理器用拷贝宏代码的方式取代函数调用,省去了参数压栈、生成汇编语言最大的缺点就是容易出错,预处理器在拷贝宏代码时常常产生意想不到的边际效应。#define Max(a,b) (a)>(b) ? (a):(b)result = Max(i,j)+2;//扩展为result = (i)>(j):(i):(j)

2018-01-28 20:01:26 379

原创 面试题-联合体的大小

联合体的大小取决于它所有的成员中占用空间最大的一个成员的大小。例1#include using namespace std;//#pragma pack(2) pragma pack(x)可以改变编译器的对齐方式 union u1{ double a; int b;};union u2{ char a[13]; int b;

2018-01-28 19:19:59 2514

原创 面试题中C++中const和static

const(1)const用来定义常量:const定义的常量编译器可以对其进行数据静态类型安全检查。(2)const修饰函数形式参数:当输入参数为用户自定义类型和抽象数据类型时,应该将“值传递”改为“const&传递”,可以提高效率。比较下面两段代码:1 void fun(A a);2 void fun(A const &a); 第一个函数效率低。函数体内产生A类型

2018-01-26 19:51:42 469

原创 面试题-编写程序输出2的1000次方

#include int main() { int a[1000] = {0}; //先定义一个足够大的数组 int i,j,k; a[0] = 1; for(i=0; i12; i++) //2的1000次方,所以执行1000次 { for(j=0; j12; j++) //

2018-01-26 19:13:50 1311

原创 经典面试题-颠倒字符串单词顺序不变

编写一个C函数,将”I am from Shanghai”倒置为”shanghai from am i”,及将橘子中的单词位置倒置,而不改变单词内部结构。#include #include int Rerverse(char str[],int i)//递归算法 找到'\0'出口 返回一个0 { int k; char ch =str[i]; if(ch==

2018-01-26 15:07:54 840

原创 面试题-说明const与#define的特点与区别

说明const和#define的特点及区别我们首先要认识到源程序文件(file.c)到生成可执行文件(file.exe)有四个阶段,预处理、编译、汇编、链接1.编译器处理方式不同#define是在预处理阶段const是在编译阶段运行使用//这边补充一点预处理器根据以#开头的命令,修改原始的程序。比如我们常见的#include 命令告诉处理器读取系统头文件st

2018-01-25 21:20:31 576

原创 Mysql第一天

Mysql今天学习了Mysql一些基础知识,所以整理一些有用的知识点。MySQL为关系型数据库,这种所谓的“关系型”可以理解为表格的概念,一个关系型数据库由一个或数个表格组成,如图所示的一个表格:表头(header):每一列的名称;列(row):具有相同数据类型的数据的集合;行(col):每一行用来描述某个人/物的具体信息;值(value):行的具体信息,每

2018-01-25 19:26:06 145

原创 面试题-替换空格

题目:请实现一个函数,把字符串中的每个空格替成“%20”。例如输入“we are happy.”,则输出“we%20are%20happy.”。基本思路:先遍历一遍字符串统计字符串中空格的个数并计算出替换之后的字符串的总长度,每替换一个空格,长度增加2,因此替换后字符串的长度对于原来的长度加上空格个数的2倍。如果从头到尾扫描字符串,遇到空格就做替换,必须每次都把空格后面所有的字符都向后

2018-01-24 20:18:29 168

转载 char str[]与char *str的区别

转载自 http://blog.csdn.net/wangluotong00/article/details/39367709今天做题的时候遇到一个问题,如何实现一个函数返回一个指针,返回一个整型值很简单,因为“C语言是按值传递的”,而想要返回一个指针,比如char型的指针,然后想在主调函数中使用被调函数的返回指针,分析了一下关于char str[]和char *str的区别下

2018-01-24 19:36:02 16293

原创 单例模式

单例模式单例模式的作用:保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。单例模式的构造图为什么需要单例模式?1.在多个线程之间,比如初始化一次socket资源2.在整个程序空间使用全局变量,共享资源3.大规模系统中,为了性能的考虑,需要节省对象的创建时间。实现单例模式常用步骤1.构造函数私有化

2018-01-24 16:32:49 112

原创 数据结构-链表深入剖析(带图)

一、定义:链表是线性表的链接存储表示二、分类:单向链表、静态链表、双向链表、循环链表三、特点:每个元素由数据域和指针域构成    1.结点可以连续,也可以不连续存储;//因为每个结点指针域存储了下一个结点的地址,因此地址不同,指向下个结点也都不同    2.结点的逻辑顺序与物理顺序可以不一致;    //顺序不固定性    3.表的容量可以不断变大(顺序表是固定的)

2018-01-24 13:23:24 677

空空如也

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

TA关注的人

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