自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 排序算法——快速排序

排序算法原理:在要排序的数据中以第一个为基数 在这个数的左边都放比它小的数,右边都放比它大的数 在以这个基数为界分成的左边数据和右边数据分别重复1,2步骤以5  10  4  7  6   3  8  9  20  1为例进行快速排序第一步:选择5为基数第二步: 设两个指针分别为left指向第一个数即基数,right指向最后一个数,mid=5; right向前遍历直到遇...

2018-08-17 11:33:22 262

转载 Linux-C成长之路(六):函数要义

C语言之所以被称为模块化语言,原因在于C语言的程序结构是由一个个的“模块”搭建起来的,这些所谓的模块就是函数,因此,函数是构成C程序的最基本的组件,我们的程序的功能可能很复杂,但是我们可以通过函数来分解,然后在组装它们,这种做法在遇到大规模软件工程之前,是非常主流的想法。在目前的软件开发中,也大量使用像C语言这样的模块化语言来描述问题,只不过当今世界,在面临大规模软件工程的开发时,面向对象语言也许...

2018-08-16 21:05:21 227

转载 Linux-C成长之路(七):数组与指针

谈到C语言编程,数组和指针是很多人的心头大石,总觉得它们是重点难点,重点是没错的,但绝不是什么难点,要说C语言的难点,客观地讲应该是带参宏,而数组和指针,概念浅显易懂,操作简洁方便,根本不是很多初学者想象的那么困难,所以一开始就要有充分的信心,其次,恰恰是因为它们的“方便”,导致如果一不小心会用错,所以数组和指针,尤其是指针,与其说它难,还不是说他容易用错,我们在使用的时候要格外小心。指针和数...

2018-08-15 15:41:46 237

转载 Linux-C成长之路(九):复合数据类型

咱们知道,C语言中有许多基本数据类型,比如int型,float型,double型等,我们经常使用这些基本数据类型来表达一些简单的数据,比如一个人的年龄可以用 int 型数据来表示,一本书的价格可以用 float 型数据来表示等等。但另一方面,在我们的日常生活中遇到更多的数据是复合的数据类型,比如一个学生,或者一本书。一个学生包含很多元素:姓名、性别、年龄、电话、住址等等,一本书也包含很多信息:...

2018-08-15 15:40:23 236

转载 Linux-C成长之路(三):基本IO函数操作

在学习C语言的时候,基本的输入输出是非常重要的,因为我们时常要接收用户的输入,而且时常要将结果输出到屏幕,因此非常有必要注重地学习一下。最常用的两个基本IO函数莫过于 printf()  和 scanf() 了,下面首先来详细地介绍一下它们。来看第一个示例代码://example1.c#include <stdio.h>int main(void){        c...

2018-08-14 21:57:11 180

转载 Linux-C成长之路(二):基本数据类型

C语言是一种强数据类型编程语言,换句话讲,不像弱数据类型的语言比如shell脚本语言那样,没有特殊的变量数据类型,统统都是字符串。而C语言是有严格的数据类型的规定的。来看一下下面这段代码://example2.c#include <stdio.h>int main(void){        char c = 'A';        int i = 100;    ...

2018-08-13 23:35:08 204

转载 数据结构——树——知识点总结

数据结构——树定义:树是一个n(n>=0)个结点的有序合集 名词理解:结点:指树中的一个元素;结点的度:指结点拥有的子树的个数,二叉树的度不大于2;数的度:指树中的最大结点度数;叶子:度为0的结点,也称为终端结点;高度:叶子节点的高度为1,根节点高度最高;层:根在第一层,以此类推; 二叉树的定义:由一个结点和两颗互不相交、分别称为这个根的左子树和右...

2018-08-12 22:47:11 300

转载 C语言成长之路第一节:Linux下C编程概要

第一个问题,假设我是一个初学者,我需要学习的第一个知识并非C语言本身,而是可供我编辑、编译、验证乃至调试C语言程序的编程环境,如果你没有一个合适的编程环境,那么C语言的学习将是空中楼阁,无从谈起。因此我们的第一个任务便是搭建一个属于自己的编程平台,由于针对Linux编程,我推荐大家直接使用Linux系统,Linux系统有许多发行版,选择一个易用的就行了,比如我比较推荐Ubuntu,RedHat...

2018-08-11 22:31:51 147

原创 基于NanoPi NEO的linux即时通讯软件的环境搭建

关于我使用的NanoPi NEO可以去以下网址查看:https://item.taobao.com/item.htm?id=535338278975;http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO/zh 买NannoPi NEO时如果带sd卡的话,卡里面应该已经烧好系统了,可以 直接用,不用再自己烧系统到卡里。如果需要...

2018-08-10 21:23:14 1200

原创 Linux下GNU的Makefile详解

Makefile 的规则:目标文件名(可执行文件,最终目标文件):目标文件生成所需要依赖的所有文件(.o文件)                             (tab键)通过依赖文件生成目标文件的命令(或者说规则)                                       目标文件名(.o文件):目标文件生成所需依赖的所有文件(.c文件.h文件)      ...

2018-08-09 22:08:39 1948

转载 arm-linux-gcc 4.4.2 的安装及version `GLIBCXX_3.4.9' not found 的解决

在RHEL 5平台上安装配置arm-linux-gcc在linux平台上安装好的基础上,开始配置arm-linux-gcc,使其正常工作 一,安装前准备 1,下载并安装arm-linux-gcc arm-linux-gcc  4.4.2的版本在http://download.csdn.net/download/yongan1006/3297959这里可以下载 下面的这个是ARM...

2018-08-08 16:25:58 524

转载 ARM上运行可执行程序出现No such file or directory的问题

问题:使用arm-none-linux-gnueabi-gcc –o hello hello.c编译完成,在ARM上运行出现报错:-sh: ./hello: No such file or directory原因:因为我们的程序使用的是动态链接方式编译的,而ARM上的链接库文件路径不同,导致找不到文件,可以用gcc -static命令改用静态链接的方式编译:arm-none-l...

2018-08-07 20:20:38 7081 1

转载 可执行文件的格式(ELF格式)详解

各种讲解elf文件格式一上来就是各种数据类型,看了半天却不知道这些数据类型是干啥的,所以咱就先找个例子直接上手,这样对elf文件格式有个具体而生动的了解。然后再去看那些手册,就完全不惧了~。我们使用一个汇编程序max.s并对其进行编译链接产生的两个elf文件来对比分析elf文件。例子程序max.s来自《Linux C 一站式编程》。ps:这是一本看完可以真正可以深入理解C语言精华的...

2018-08-07 20:04:39 2578

转载 Linux中如何添加/删除FTP用户并设置权限

在linux中添加ftp用户,并设置相应的权限,操作步骤如下:1.环境:ftp为vsftp。被设置用户名为test。被限制路径为/home/test2.创建建用户:在root用户下:  useradd -d /home/test test #增加用户test,并制定test用户的主目录为/home/test passwd test #为test用户设置密码 3.更...

2018-08-06 22:21:13 279

转载 交叉编译器的安装方法

  首先简单介绍一下,所谓的搭建交叉编译环境,即安装、配置交叉编译工具链。在该环境下编译出嵌入式Linux系统所需的操作系统、应用程序等,然后再上传到目标机上。       交叉编译工具链是为了编译、链接、处理和调试跨平台体系结构的程序代码。对于交叉开发的工具链来说,在文件名称上加了一个前缀,用来区别本地的工具链。例如,arm-linux-表示是对arm的交叉编译工具链;arm-linux-g...

2018-08-05 20:46:34 5504

转载 NanoPi-NEO——初体验

2 NanoPi-NEO——初体验  上一节我们介绍了NanoPi NEO的外观、资源、接口等,是不是对NEO充满了期待?事不宜迟,我们马上来体验一下吧!  图1.4 NanoPi NEO v1.3开箱检查   因为NEO是使用SD卡启动的,所以我们需要一张带运行系统的microSD卡/TF卡,本次体验使用的系统是Ubuntu-Core with Qt-Embedded...

2018-08-04 21:25:05 501

转载 cout格式化输出

在C语言中,我们一般用printf()函数来进行输出,通过输出字符串中的格式说明符(如%4.2d)可以很容易地格式化输出。而在C++中,为简便起见,往往不指定输出的格式,由系统根据数据的类型采取默认的格式,但有时也需要数据按我们指定的格式输出,比如以十六进制的形式输出一个整数等。有两种方法可以达到格式化输出的目的,一种是使用流对象的有关成员函数,还有一种是使用控制符方法,这两种方法殊途同归,它们的...

2018-08-03 12:44:50 596

转载 十大经典排序算法(动图演示)

0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。 0.2 算法复杂度0.3 相关概念...

2018-08-02 17:12:48 212

原创 函数模板和类模板

函数模板:定义:template<typename T1,typename T2....> 类型 函数名(T1 a, T2 b,....){ 语句序列}显式调用:函数名<类型>(实参列表);隐式调用;函数名(实参列表)函数模板不允许自动类型转换,普通函数允许;1 函数模板可以像普通函数一样被重载2 C++编译器优先考虑普...

2018-08-01 20:23:21 133

转载 socket头文件

 一 三种类型的套接字:1.流式套接字(SOCKET_STREAM)    提供面向连接的可靠的数据传输服务。数据被看作是字节流,无长度限制。例如FTP协议就采用这种。2.数据报式套接字(SOCKET_DGRAM)    提供无连接的数据传输服务,不保证可靠性。3.原始式套接字(SOCKET_RAW)    该接口允许对较低层次协议,如IP,ICMP直接访问。二 基本套接字系统调...

2018-07-31 16:34:01 833

原创 C++中的多态

函数重写:在子类中定义与父类中原型相同的函数,函数重写只发生在父类与子类之间函数重载与重写的区别:重载:同一个作用域;子类无法重载父类函数,父类同名函数将被覆盖;重载是在编译期间根据参数类型和个数决定;重写:发生于父类、子类之间;父类和子类函数有相同的函数原型;使用virtual关键字声明后能够产生多态;运行期间根据具体对象类型决定调用的函数。多态成立的条件:要有继承;要有虚函数重写;用父...

2018-07-30 20:20:51 153

原创 C++中的继承与派生

继承(Inheritance)可以理解为一个类从另一个类获取成员变量和成员函数的过程。例如类 B 继承于类 A,那么 B 就拥有 A 的成员变量和成员函数。被继承的类称为父类或基类,继承的类称为子类或派生类。派生类除了拥有基类的成员,还可以定义自己的新成员,以增强类的功能。继承的权限问题:继承可以有三种方式:public,protected,private。在派生类中,继承来的成员变量和成...

2018-07-29 16:04:54 259

转载 网络编程

 网络编程 网络字节序和主机字节序 地址结构 地址和服务转换 TCP IO模型 阻塞输入输出 网络编程网络编程的学习主要是通过《UNIX网络编程》来学习的,也看了一下《Effective TCP/IP》和一些项目。网络编程在一个项目中占到的比重一般比较小,更重要的是基于网络的功能的实现,但几乎每一个项目都离不开网络。网络编程细节上的东西也比较多,准备在这里记录一...

2018-07-28 22:15:05 280

原创 scanf()返回值

scanf()返回值为int型;测试代码:#include <stdio.h>int main(){ int a,b,c; int ret; ret=scanf("%d %d %d",&a,&b,&c); printf("%d\n",ret); return 0;}测试结果1:正确输入结果 测试结果2:错误输入一个数...

2018-07-27 11:35:50 1049

原创 Linux C知识点梳理

第1章 程序设计和C语言最简单的c语言程序;  第2章 算法——程序的灵魂  第3章·简单的C程序设计——顺序程序设计常量,变量(先定义后使用),常变量,标识符;数据类型;运算符与表达式,不同类型数据间混合运算;C语句;数据的输入输出,printf(),scanf()函数,字符数据输入输出;  第4章 选择结构程序设计if语句实现选择...

2018-07-26 15:17:27 300

转载 strcpy函数常见面试题目

本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个strcpy函数吗?我们都觉得自己能,可是我们写出的strcpy很可能只能拿到10...

2018-07-25 15:20:20 1369 1

原创 C++关于类和对象的一些注意点

类的访问控制:在C++中可以给成员变量和成员函数定义访问级别                         public修饰成员变量和成员函数可以在类的内部和类的外部被访问                         private修饰成员变量和成员函数只能在类的内部被访问                                                          ...

2018-07-24 21:08:57 598

转载 判断链表中是否有环 ----- 有关单链表中环的问题

给定一个单链表,判断其中是否有环,已经是一个比较老同时也是比较经典的问题,在网上搜集了一些资料,然后总结一下大概可以涉及到的问题,以及相应的解法。 首先,关于单链表中的环,一般涉及到一下问题:1.给一个单链表,判断其中是否有环的存在;2.如果存在环,找出环的入口点;3.如果存在环,求出环上节点的个数;4.如果存在环,求出链表的长度;5.如果存在环,求出环上距离任意一...

2018-07-21 10:19:10 139

转载 C/C++编译的程序占用的内存分为以下几个部分

转自: http://blog.chinaunix.net/uid-9688646-id-3087625.html 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放 , 若程序员不释放,程序结束时可能由OS回收 。注意它...

2018-07-20 20:40:17 968

原创 C/C++比较

命名空间:C++中引入命名空间解决大型软件开发中多位程序员对变量函数的命名冲突;命名空间将全局作用域分成不同的部分不同命名空间中的标识符可以同名而不会发生冲突命名空间可以相互嵌套全局作用域也叫默认命名空间#include <iostream>using namespace std;namespace A//定义命名空间{ int a = 1; void p...

2018-07-19 14:29:24 481

转载 C/C++学习路线

 C/C++学习路线随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能使之成为高级语言中的性能王者。而在今天,它又扮演着什么样重要的角色呢?请往下看:后端服务器,移动互联网后端,经典Windows界面开发,移动互联网端界面开发,跨平台界面开发,图形分析,系统架构,应用设计,还有现在最为流行的分布架构等一些新的技术领域。 这么牛的...

2018-07-18 22:32:48 261

原创 Linux c 通讯录

编程思路:使用链表编写,使用文件保存数据;程序流程:建立或打开一个通讯录 进入通讯录界面,在通讯录界面里进行通讯录功能的选择和通讯录的退出具体过程:通讯录的创建:         变量设置:头指针(用于指向链表的头结点)typedef struct //定义头指针{ Node *Lptr; //指向头结点 int len; ...

2018-07-17 17:33:53 976

空空如也

空空如也

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

TA关注的人

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