- 博客(28)
- 收藏
- 关注
转载 C语言printf()函数中一些不为人知的技巧!
格式: CODE:printf("\033[字背景颜色;字体颜色m字符串\033[0m" ); printf("\033[47;31mhello world\033[5m");47是字背景颜色, 31是字体的颜色, hello world是字符串. 后面的\033[5m是控制码. 颜色代码:QUOTE:字背景颜色范围: 40--49
2016-11-30 23:39:41 663
转载 用一道例题来分享两种匹配字符串的算法!
输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来,提示 :帧头和帧尾分别是 head 和 tail 字符串 "asdheaddjfvjdhtail"中headdjfvjdhtail是合法帧,主函数.c文件#include#include#define MAX_SIZE 100int main(){ int i;
2016-11-29 23:14:38 343
转载 一段完美实现字符串倒序的算法!
程序功能 : 输入 i am happy 输出 happy am i特点:自己想了一个实现字符串倒序的算法,可实现一个字符串中的某一段代码倒序,其它不变#include#include#define MAX_SIZE 100//作用输入 i am happy => happy am ivoid daoxu(char *str,int p,i
2016-11-27 23:26:40 2109
转载 测量各种数据类型的长度(包括指针),typedf关键字对数据类型的作用!
32位处理器存储单位 bit (位) 字节 = 8 bit 半字 = 2 个字节 = 16 bit 字 = 4 个字节 = 32 bit 字节长度: 变量在内存中所占的存储空间的长度 数据类型 字节长度 char 1 s
2016-11-27 23:24:57 298
转载 有关函数声明的小注意点
在C语言中,函数声明称为函数原型(function prototype)。使用函数原型是ANSI C的一个重要特点。它的作用主要是利用它在程序的编译阶段对调用函数的合法性进行全面检查。 说明: <1> 以前的C版本的函数声明方式不是采用函数原型,而只是声明函数名和函数类型。 如:float add(); 不包括参数类型和参数个数。系统不检查参数类型和参数个数。新版本也兼容这种用法,但不提倡这
2016-11-26 23:03:45 273
转载 C中数据类型数值范围解释
类型说明符 int 字节数 4 ; 数的范围 -2^31 -- 2^31 - 1;类型说明符 unsigned int 字节数 2 ; 数的范围 0 -- 2^16 - 1; (0 - 65535)类型说明符 short int
2016-11-24 23:05:16 211
原创 位操作训练
1、题目:请编写一个c函数,该函数给出一个字节中被置为1的位的个数#include <stdio.h>int int2bin(int num){ int i; int count = 0; for( i = 0; i < 8; i++) { if( num & 1 ==1) { count++;
2016-11-23 23:26:53 205
转载 C都有哪些标准?都有哪些主要变化?
编程前先查一下编译器都支持哪些标准?1?C的标准化过程? C语言自诞生到现在,期间经历了多次标准化过程,主要分成以下几个阶段:? 1.1?Traditional?C此时的C语言还没有标准化,来自“C Programming Language, First Edition, by Brian W. Kernighan, Dennis M. Ritchie. Prent
2016-11-22 23:15:25 380
转载 “右左法则”[重要!!!]
The right-left rule: Start reading the declaration from the innermost parentheses, go right, and then go left. When you encounter parentheses, the direction should be reversed. Once everything in th
2016-11-22 23:13:49 915
转载 面向过程处理机制和面向对象处理机制
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 C++对C的扩展Cute:封装,多态,继承,类,模版,STL泛型编程。面向过程一种以事件为中心的编程思想,以功能(行为)为导向,按模块化的设计,就是分析出解决问
2016-11-20 23:25:49 465
转载 C语言中局部变量和全局变量解释
局部变量 : 在一个函数内部定义的变量是局部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它,在此函数外是不能使用这些变量的。这些称为局部变量。 说明 (1) 不同函数中可以使用相同名字的变量,它们代表不同的变量,互不干扰。 (2) 形式参数也是局部变量 (3) 在一个函数内部,可以再复合语句中定义变量,这些变量仅在本复合语句中有效,
2016-11-19 23:52:12 550
转载 变量的存储类别详解
变量从作用域(空间)角度来分可以分为全局变量和局部变量 从变量值存在的时间(即生存期)角度来分,可以分为静态存储方式和动态存储方式。静态存储方式:程序在运行期间,由系统分配固定的存储空间的方式。动态存储方式:程序在运行期间根据需要进行动态的分配存储空间的方式内存中供用户使用的存储空间可以分为三个部分: 程序区 静态存
2016-11-18 23:26:01 378
转载 C语言指针与二维数组
二维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,它们之间没有“缝隙”。以下面的二维数组 a 为例:int a[3][4] = { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} };从概念上理解,a 的分布像一个矩阵:0 1 2 34 5 6 78 9 10 11但在内存中,a 的分布
2016-11-17 23:33:26 222
原创 输入一个字符串,计算出其中想要的子串的数量
#include #define MAX 1024int main(){ int i; int j; int temp; int count = 0; char src[MAX]; char str[MAX]; printf("Please input a string:"); sc
2016-11-16 23:24:42 773
转载 指针易混淆的定义方式详解
一、 int (*p)[4]; 表示p是一个指针变量,它指向包含4个整型元素的一维数组。注意*p两边的括号不能少,如果写成 *p[4],由于 [] 运算级别高,因此 p 先于 [4] 结合,p[4] 是定义数组的形式,再与前面的 * 号结合, * p [4] 就是指针数组; 二、 char *string = “I love china!”;等价于下面
2016-11-15 23:32:24 183
转载 Linux下调试器 GDB和工程管理器MAKE 应用详解!
调试器 GDB 1.启动被调试程序 2.设置断点 3.查看断点处变量的值 调试选项 -g gcc -g text.c -o text gdb test //(gdb + 可执行文件) 作用 : 打开gdb调试工具 用到的指令解释: run 运行程序 所有的命令都可以简写,只写第一个字母 l
2016-11-14 22:22:44 296
原创 Linux下的调试器GDB
GDB主要完成下面三个方面的功能:1、 启动被调试程序;2、 让被调试的程序在指定的位置停住;3、 当程序被停住时,可以检查程序的状态-变量值;以假定文件test.c为例,说明gdb的功能:[root@localhost GDB]# lsdemo test.c[root@localhost GDB]# gcc -g test.c -ot
2016-11-13 23:31:50 240
转载 三级优化的具体优化内容
GNU编译器提供-O选项供程序优化使用:-O 提供基础级别的优化-O2 提供更加高级的代码优化,会占用更长的编译时间-O3 提供最高级的代码优化-O4 不优化,这是默认值不同的优化级别使用的优化技术也可以单独的应用于代码。 可以使用-f命令行选项引用每个单独的优化技术。第一级:代码调整 代码调整是一种局部的思维方式;基本上不触及算
2016-11-12 22:57:44 765
转载 七种排序方式
一、快速排序1. 简单介绍 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少
2016-11-11 23:42:30 248
转载 折半查找
折半查找也叫二分查找,是很快的查找方式,使用普遍,前提是数据先进行排序,比如以下例子中用到的数组就是拍好序的int arr[]={1,2,3,4,5,6,7,8,9,10};#include using namespace std;int binSearch(int x,int a[],int n);void main(){int arr[]={1,2,3,4,
2016-11-10 22:04:31 213
转载 C语言程序练习三
1、#include #include #include #define MAX 100int main(){ int i; int sum = 0; int final = 0; int len = 0; char src[MAX]; printf("please input the string:\n"); get
2016-11-09 23:34:20 199
原创 C语言编程练习二
一、用户键入两个数,显示两数加法式,用户键入答案,正确则显示正确,错误则显示错误并在此作答#include int main(){ int i; int j; int a; printf("Please input two numbers:"); scanf("%d %d",&i,&j); printf("
2016-11-08 12:06:00 348
原创 C语言编程练习一
一、找出0-100中的素数并算出个数#include int main(){ int i; //100以内的某一个数 int j; //i以内的某一个数 int n = 0; //素数的个数 int flag = 0; //标志位 for(i = 2; i
2016-11-07 23:11:04 334
转载 Linux根目录下各个目录的作用和意义
/bin 存放使用者最长用的命令,如:cp、ls、cat,等等。 /boot 启动linux时使用的一些核心文件。 /dev 是device(设备)的缩写,这个目录下是所有linux的外围设备。 D:\document\Chat\MyIM\MyIM\bin\Release/etc 这个目录用来存放系统管理所需要的配置文件和子目录。 /home 用户的主目录,比如说有个用户叫wang
2016-11-06 23:37:58 777
转载 关于指针的复习知识点
一个变量的地址称为该变量的指针;如果有一个变量专门用来存放另一个变量的地址(即指针),则称它为指针变量;定义指针变量的一般形式: 基类型 *指针变量名; float *pointer_1; char *pointer_2;指针变量的赋值: int i,j; int *pointer_1,*pointer_2; pointer_1=&i;pointer_2=&j
2016-11-05 22:29:33 496
原创 关于linux的发展史简述与现阶段的用户对Linux的使用
linux,操作系统的一种。在又被誉为c语言之父——丹尼斯里奇创建的操作系统,UNIX之后,Linux在模仿了其内核源码之后在1997发布出来的Linux 0.1也席卷了整个业界。为了抢占UNIX对市场的占有,Linux选择了和UNIX进行兼容。因为UNIX提出了POSIX标准,即可移植操作系统接口,使得期望源代码级别的软件有可移植性向前跃进了一大步。而从Linux 0.1开始,因为开
2016-11-04 23:29:54 310
原创 简单分页存储管理的一些粗浅的总结
学习操作系统时的一些小小总结。分区存储管理的优点是简单易实现,但缺点是碎片问题突出,主存空间的利用率低下。导致该问题的主要原因是采取了连续分配原则,即一个作业必须占用一个连续的分区,提高了分区分配的难度。相对于连续分配原则呈现出的弊端,离散存储原则在应用中就比较灵活。它允许一个作业在主存中占用多个不连续的区域,从而消除了外部碎片,同时内部碎片也很少。当我们将主存空间划分成大小相同的分区,并且结
2016-11-03 23:47:33 1336
原创 关于嵌入式的理解与探讨
之前,我对嵌入式这三个字还不甚了解,不知道什么叫嵌入式,和普通的计算机科学有什么区别。所谓嵌入式,就是指在已有硬件上移植操作系统。传统开发(即单片机开发)有两项缺点,一是它的不可移植性,即软件只能与硬件一一适配,二是对软件人员的有一定量的硬件知识需求。而嵌入式开发的优势在于,软件并不直接凌驾硬件之上,而是在操作系统(也可理解为一款功能十分强大的软件)之上做文章。这样就避免了效率低下的软
2016-11-02 23:21:46 480
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人