
Linux
文章平均质量分 66
root_robot
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言的概述以及数据类型
一、C语言的基本概述 1、C语言之父:丹尼斯·里奇 2、语言的特点:①移植性好,适用于不同的平台 移植性:将代码拷贝运用到另一平台台时,所需要修改的的代码量越少 移植性越好 ②可以直接访问硬件 ③运行效率高原创 2016-07-11 16:05:37 · 725 阅读 · 0 评论 -
C语言中变量和函数的声明与定义
一、变量在将变量前,先解释一下声明和定义这两个概念。声明一个变量意味着向编译器描述变量的类型,但并不为变量分配存储空间。定义一个变量意味着在声明变量的同时还要为变量分配存储空间。在定义一个变量的同时还可以对变量进行初始化。局部变量通常只定义不声明,而全局变量多在源文件中定义,在头文件中声明。局部变量在一个函数的内部定义的变量是内部变量,它只在本函数范围内有效。自动变量auto转载 2016-11-17 21:13:47 · 4583 阅读 · 0 评论 -
矩阵乘法的算法实现
一般矩阵乘法算法:原理:矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的栏数(column)和第二个矩阵的列数(row)相同时才有定义。一般单指矩阵乘积时,指的便是一般矩阵乘积。若A为m×n矩阵,B为n×p矩阵,则他们的乘积AB会是一个m×p矩阵。其乘积矩阵的元素如下面式子得出:代码如下:struct mat{ int n, m; doubl转载 2016-11-30 18:25:53 · 1318 阅读 · 0 评论 -
BOOL,int,float,指针变量 与“零值”比较的if语句
以下摘自《林锐-高质量C++c编程指南》 /* ---------------------------------------------------------------------------- */ if语句是C++/C语言中最简单、最常用的语句,然而很多程序员用隐含错误的方式写if语句。本节以“与零值比较”为例,展开讨论。 4.3.1 布尔变量与零值比较转载 2016-12-06 21:59:16 · 6453 阅读 · 0 评论 -
getchar()的灵活使用
getchar()在C程序中的功能是接收一个字符,当我们在连续输入字符的时候getchar()会给你意想不到的效果。下面是做的一些测试:首先看下面的这个程序:[html] view plain copy #includestdio.h> #includestdlib.h> int main(void) {原创 2016-11-27 21:51:26 · 303 阅读 · 0 评论 -
判断一个数是否为2的N次方问题
对于判断一个数是否为2的N次方问题,通常想到的最为直接的办法就是对这个数不断对2取余,为0就将该数变为该数除以2,直到最后该数为1为止。void judge(int n) { while(!(n % 2)) { n = n / 2; if(n == 1) { pri转载 2016-12-22 22:44:51 · 908 阅读 · 0 评论 -
多种排序法间的比较
冒泡排序 冒泡排序重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说排序完成。规模比较小的时候应用冒泡排序,主要应用于教学。。。选择排序--只会移动N次 选择排序的主要思想:首先找到数组中最小的那个元素,其次,将它和第一个元素交换。接下来找第二小原创 2016-12-23 23:48:41 · 369 阅读 · 0 评论 -
C语言实现蛇形输出
实现如下的蛇形输出: 1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9 参考代码如下所示:[cpp] view plain copy #include #include int main原创 2016-12-18 21:34:53 · 2704 阅读 · 0 评论 -
用尽量高效的方法用”*”打印出一个空心正方形
请以尽量高效的方法用”*”打印出一个空心正方形,num为边长。void print_square(int num);[csharp] view plain copy #include int main() { int x,y,num; printf("please inpu原创 2016-12-24 22:52:28 · 3182 阅读 · 0 评论 -
删除字符串中的指定子串
问题描述: 在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。注:I、 子串匹配只考虑最左匹配情况,即只需要从左到右进行字串匹配的情况。比如:在字符串"abababab"中,采用最左匹配子串"aba",可以匹配2个"aba"字串。如果匹配出从左到右位置2开始的"aba",则不是最左匹配,且只能匹配出1个"aba"字串。II、 输入字符原创 2016-12-26 21:04:53 · 983 阅读 · 0 评论 -
青蛙跳台阶问题
一只青蛙一次可以跳上1级台阶,也可以跳上2 级……它也可以跳上n 级,此时该青蛙跳上一个n级的台阶总共有多少种跳法?下面我们有数学归纳法分析一下这个问题: 用Fib(n)表示青蛙跳上n阶台阶的跳法数,青蛙一次性跳上n阶台阶的跳法数1(n阶跳),设定Fib(0) = 1; 当n = 1 时, 只有一种跳法,即1阶跳:Fib(1) = 1;原创 2016-12-19 21:02:41 · 395 阅读 · 0 评论 -
双向冒泡排序
以整数升序排序为例来简单说明一下双向冒泡排序的过程:首先从前往后把最大数移到最后,然后反过来从后往前把最小的一个数移动到数组最前面,这一过程就是第一轮,然后重复这一过程,最终就会把整个数组从小到大排列好。双向冒泡排序要稍微优于传统的冒泡排序,因为双向排序时数组的两头都排序好了,我们只需要处理数组的中间部分即可,而单向即传统的冒泡排序只有尾部的元素是排好序的,这时每轮处理都需要从头一直处理到已经排好原创 2016-12-27 21:44:24 · 668 阅读 · 0 评论 -
约瑟夫环
设编号1,2…..n的n个人围坐在一圈,任选一个正整数作为报数的上限值,从第k个人开始按顺时针报数,数到m的那个人出局,他的顺时针方向下一位又从1开始报数,数到m的那个人又出局,以此类推,直到所有人出局为止,请用链表写一个函数找出每轮的幸存者。(假设n个人已经插入链表)[csharp] view plain copy #include原创 2016-12-28 20:12:44 · 404 阅读 · 0 评论 -
堆和栈的区别
简单的可以理解为: heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。 stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。 预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据原创 2016-12-20 22:16:31 · 332 阅读 · 0 评论 -
函数局部变量的返回
昨天看到一道编程纠错题,在网上看到一个讲解非常详细的文章,这里拿来和大家分享一下:一般的来说,函数是可以返回局部变量的。 局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放了,这样指针指向转载 2016-11-29 21:43:28 · 261 阅读 · 0 评论 -
链表的简易实现
创建一个带头节点的链表,并把链表用递归法实现逆序以及链表遍历[cpp] view plain copy #include #include /* define structure of linklist */ typedef struct Node { int原创 2016-11-28 21:53:55 · 377 阅读 · 0 评论 -
使用scanf函数时应该注意的问题
原文网址:http://blog.youkuaiyun.com/mishifangxiangdefeng/article/details/71630021、scanf()中的变量必须使用地址。 2、scanf()的格式控制串可以使用空白字符或其它非空白字符,使用空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。使用非空白字符会使scanf()函数在读入时剔除转载 2016-10-07 21:15:34 · 601 阅读 · 0 评论 -
指针及其应用(二)
一、多维指针 一维指针保存基本变量的地址 二维指针保存一维指针变量的地址 三维指针保存二维指针变量的地址二、数组名 一维数组名:指针常量,指向数组首元素的地址 二维数组名:首个一维数组的地址(首行的地址) 三维数组名:首个二维数组的地址三、指针和数组的区别原创 2016-07-25 15:03:50 · 361 阅读 · 0 评论 -
函数以及面向对象的思想
一、函数的三要素: 函数名、函数形参、函数返回值二、写成函数的原因: 1、代码的维护性提高 2、代码的复用性提高 3、叠代开发三、函数名 1、函数名要体现函数的功能(自注释性) 2、函数名是一个指针常量,保存的是函数存放的地址(入口地址)四、函数的调用:原创 2016-07-25 16:21:21 · 516 阅读 · 0 评论 -
C中的6种关键字及其用法
1、register关键字 请求编译器尽可能的将变量保存在CPU内部寄存器中,省去CPU从内存中抓取变量的时间,提高了运行效率。 为什么是尽可能而不是全部将变量保存在CPU中:由于CPU内部寄存器中空间有限,不可能将所有变量都放入其中,所以只能将一些经常访问的变量放入。 使用注意事项:①register只能修饰局部变量,不能修饰全局变量和函数。全局变量会被多个进程访原创 2016-07-26 15:01:28 · 1044 阅读 · 0 评论 -
typedef和define的区别以及枚举和#define的区别
一、枚举与#define的区别 枚举可以使整型数据,define为任意类型的数据 1、从处理过程角度看 #define宏定义是在预编译处理阶段时处理的处理的,只做简单的字符串替换,枚举常量则是在编译的时候 确定其值 2、从数据类型看 #define可以编译任意类型的原创 2016-07-26 17:04:10 · 780 阅读 · 0 评论 -
Printf中的行缓冲以及让printf输出
1、缓冲区的定义(即什么是缓冲区):缓冲区又称为缓存它是内存空间的一部分。也就是说在内存空间中预留了一定的存储空间这些存储空间用来缓冲输入或输出的数据这部 分预留的空间就叫做缓冲区。 缓冲区根据其对应的是输入设备还是输出设备分为输入缓冲区和输出缓冲区。2、引入缓冲区的原因:缓冲区就是一块内存区它用在输入输出设备和CPU之间用原创 2016-07-16 09:59:04 · 1643 阅读 · 0 评论 -
变量和运算符
1、变量的三大特点: ①数据类型:主要说明变量占用内存空间的大小 ②作用域:变量的有效范围 ③存储区域2、进程:进程的活动空间为进程的虚拟空间地址 进程的分配: 特点:栈空间:先进后出,管理权限为系统 堆空间:先进先出,管理权限为用户 若全局变量没有做初始化,则初始化默认为03、原创 2016-07-18 20:53:44 · 580 阅读 · 0 评论 -
嵌入式入门知识
1、什么是嵌入式(定义)? 嵌入式是在已有的硬件平台上移植操作系统后,再做相应的开发拓展。2、嵌入式的优点? (1)软件移植性提高 (2)软件开发人员不需要再熟悉硬件工作原理 (3)提供多任务机制(进程&线程) (4)提供丰富的协议栈(网络资源) (5) 提供很多开源的工具、库、软件3、嵌入式系统的分类: (1)按收费模式分:原创 2016-07-08 23:23:08 · 841 阅读 · 0 评论 -
GCC定义和应用
1、GNU CC(gcc)是GNU项目中符合ASNI C标准的编译系统 ①GPL协议:开源社区的协议,里面资源课免费试用,但是做了修改必须上传共享 ②Linux与Unix达成POSIX协议,只要基于POSIX协议,则编译出的应用两者均 可使用 ③GNU计划:区别Linux与Unix的不同,且只能运行与Linux2、gc原创 2016-07-08 23:24:43 · 1100 阅读 · 10 评论 -
Linux下gdb调试程序及举例
1、三大功能:①启动被调试程序 ②让被调试的程序在指定位置停止 ③当程序被停止时,可以检查程序中所发生的事2、调试: 运用gcc调试时,在编译时用gcc -g demo.c -o demo将demo.c生成demo文件 调出demo程序:gdb demo原创 2016-07-09 11:21:55 · 1445 阅读 · 0 评论 -
Linux下的Makefile编译
Makefile的应用编程1、make为工程管理器,用户只需要单击“make”,系统就会自动编译,整个过程中不需要 人工干预,因此也被称为全自动工程管理器2、make自动编译是按照写的脚本编译,在编译过程中自动检测是否有修改(时间戳)3、Makefile为脚本文件,在里面写的是脚本语言,在生成Makefile文件时,只能用touch 命令生成 根目录中的Make原创 2016-07-09 17:24:14 · 3669 阅读 · 0 评论 -
指针及其应用(一)
1、指针的定义:指针是一个变量,这个变量里保存的都是地址。2、指针的长度:指针的长度时固定的,任何类型的指针都是4字节。 原因:所有的指针都用来保存地址,而在操作系统中,地址的长度是固定的,因为地址的长度是由操作系统的位数决定的。32位的操作系统中是4字节,64位的操作系统中 是8字节。3、指针的运算符:* 和& “&”运算符:取地址运算原创 2016-07-21 09:18:59 · 750 阅读 · 0 评论 -
C++类和类的定义
原文出处:http://www.yesky.com/22/194022.shtml 在面向对象的程序设计中,有经常接触类、对象等专业名词;到底什么是类、什么是对象呢?在程序又是怎样运用呢?类是面向对象程序设计的核心,它实际是一种新的数据类型,也是实现抽象类型的工具,因为类是通过抽象数据类型的方法来实现的一种数据类型。类是对某一类对象的抽象;而对象是某一种类的实例,因此,类和对象是密切相关的转载 2016-10-08 22:32:48 · 11078 阅读 · 0 评论 -
Linux内存寻址之一:内存地址分类以及MMU介绍
对于程序员来说,可以简单的把内存地址理解为一种访问存储单元的内容的一种方式。而对于80x86系列微处理器来说,我们需要区分三种地址: 1)逻辑地址 这种地址通常使用在机器语言里用于指定操作数或机器指令的地址。该类地址在著名的80x86分段体系架构中得到了很好体现,因此DOS程序员和windows程序员都不得不把他们的程序分成一段一段的(如代码段、数据段、堆栈段等等)。每一个逻辑地址都是由一转载 2016-10-12 18:38:00 · 426 阅读 · 0 评论 -
实现对字符串进行循环右移
例如:输入abcdefgh,循环右移34位,输出ghabcdef[html] view plain copy #include stdio.h> #include string.h> #define MAX_SIZE 1024 char *move(char *input,int n) {原创 2016-12-31 19:51:02 · 885 阅读 · 0 评论