自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 GCC执行过程、gcc编译静态库和动态库

GCC执行过程(1)预处理阶段这个阶段主要是处理源文件中的#ifdef、#include和#define命令命令:gcc -E xxx.c -o xxx.i(2)编译阶段输入的是中间文件*.i,编译后生成汇编语言文件*.s命令:gcc -S xxx.i -o xxx.s(3) 汇编阶段输入的是汇编文件*.s,输出的转换生成的机器语言*.o命令:gcc -c xx...

2019-09-26 16:51:22 366

转载 协议的一些介绍

UDP: 譬如YY的实时应用,视频会议等等,或者RTSP之类。这类应用的特点就是实时性要求特别高,以毫秒计算。TCP家族协议根本就满足不了要求,所以HTTP/TCP都不靠谱。这类应用没有通用的方案,必须自己实现分发(服务端)和播放(客户端)。P2P: 譬如RTMFP或者各家自己的协议。这类应用的特点是节省带宽。目前PC/flash上的RTMFP比较成熟,An...

2019-07-08 10:39:30 278

原创 实现构造函数,拷贝构造函数,赋值函数,析构函数

定义一个类如下class String { public: String(const char *str=NULL); ~String(); String(const String &others); String &operator=(const String &others); void show(); pr...

2019-03-25 21:04:03 624

转载 Ubuntu系统下arm-linux-gcc交叉编译环境搭建过程

网址:https://blog.csdn.net/GSH_Hello_World/article/details/70237123

2019-03-04 13:17:18 301

转载 数组与链表

数组,在内存上给出了连续的空间.链表,内存地址上可以是不连续的,每个链表的节点包括原来的内存和下一个节点的信息(单向的一个,双向链表的话,会有两个).数组优于链表内存空间占用的少,因为链表节点会附加上一块或两块下一个节点的信息.但是数组在建立时就固定了.所以也有可能会因为建立的数组过大或不足引起内存上的问题.  数组内的数据可随机访问.但链表不具备随机访问性.这个很容易理解.数组在内...

2019-02-14 21:56:09 232

原创 跳台阶问题(变态跳台阶)的解法

一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少总跳法,并分析算法的时间复杂度。       我们把n级台阶时的跳法看成是n的函数,记为f(n)。当n>2时,第一次跳的时候就有两种不同的选择:一是第一次只跳1级,此时跳法数目等于后面剩下的n-1级台阶的跳法数目,即为f(n-1);另外一种选择是第一次跳2级,此时跳法数目等于后面剩下的n-2级台阶的跳法数目,即为f(n-2)...

2019-02-14 15:37:15 915

原创 悖论问题

如果叫你从下面两种游戏中选择一种,你选择哪一种?为什么?      a. 写下一句话。如果这句话为真,你将获得10美元;如果这句话为假,你获得的金钱将少于10美元或多于10美元(但不能恰好为10美元)。      b. 写下一句话。不管这句话的真假,你都会得到多于10美元的钱。 答案:选择第一种游戏,并写下“我既不会得到10美元,也不会得到xxx美元”。(悖论问题,如果只写的是“我不会得...

2019-02-14 11:08:06 564

原创 找到满足条件的数组

给定函数d(n)=n+n的各位之和,n为正整数,如d(78)=78+7+8=93。这样这个函数可以看成一个生成器,如93可以看成由78生成。定义数A:数A找不到一个数B可以由d(B)=A,即A不能由其他数生成。现在要写程序,找出1至10000里的所有符合数A定义的数。先申请一个长度为10000的bool数组,每个元素代表对应的值是否可以有其它数生成。开始时将数组中的值都初始化为false。...

2019-02-14 10:45:55 470

原创 程序题

题目要求:输入一个数代表多少字节,输出其对应的GBytes/Mbytes/Kbytes/Bytes。                 通俗举例:1024000Byte= 1024000/1024=1000Kbytes;余数可以不考虑,取整即可。void ByteTransformFun_pithy(long long Byte){ static const char *p[]=...

2019-01-31 19:02:58 133

原创 程序内存管理 .bss .data .rodata .text stack heap

未初始化的全局变量(.bss段)  bss段用来存放 没有被初始化 和 已经被初始化为0 的全局变量。如下例代码:#include<stdio.h> int a_bss[1024*1024];int main(int argc, char *argv[]){ return 0;}编译并查看:[root@localhost c]# gcc -g a_...

2019-01-31 17:00:36 362

原创 const常量的实现机制以及与宏定义区别

        const关键字的基本思想就是将一个变量变成常量,试图从语言设计者的角度去分析引入该关键字的动机。通常的理解,const修饰的变量是不可修改的。显然并不是,const关键字在某种程度上来说只是一个面向编译器和程序员的幌子,并不能保证被修饰的内容的不变性。 const的部分用法: const修饰局部变量,即声明一个局部常量 g++编辑器#include &...

2019-01-31 16:01:40 789 1

原创 悖论问题

如果叫你从下面两种游戏中选择一种,你选择哪一种?为什么?      a. 写下一句话。如果这句话为真,你将获得10美元;如果这句话为假,你获得的金钱将少于10美元或多于10美元(但不能恰好为10美元)。      b. 写下一句话。不管这句话的真假,你都会得到多于10美元的钱。         选择第一种游戏,并写下“我既不会得到10美元,也不会得到10000000美元”。如果这句...

2019-01-31 10:18:58 332

原创 const修饰

1.const 修饰成员变量int main(){ int a1=3; const int a2=a1; // a2 不可以修改 int * a3 = &a1; const int * a4 = &a1; // (*a4)++ 不可以,a4++ 可以 int * const a5 = &a1; //...

2019-01-30 21:03:32 315

原创 一道容易出错的程序题

求下面程序的输出结果: void func(int &x, int *y)  // x是引用,y是指针{      a -= 5;;      b += 10;  // 地址加10,对原来地址的内容不产生影响}  int main()  {      int a = 10, b = 20;      func(b, &a);      func(a, &...

2019-01-29 19:12:27 206

原创 strcat,strcmp,strlen,strcpy函数

// strlen函数的实现int my_strlen(char* const s) { char *p = s; while(*p++); return p - s - 1;} strlen计算给定字符串的长度,不包括 '\0' 在内// strcmp函数的实现int my_strcmp(const char *str, const char ...

2019-01-29 17:02:02 406

原创 strcpy和memcpy函数

memcpy函数原型是:void *memcpy(void *dest, const void *src, int n);       从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中,函数返回一个指向dest的指针。      1.source和destin所指内存区域不能重叠,函数返回指向destin的指针。          2.与strcp...

2019-01-29 16:11:39 263

转载 代码区、常量区、静态区(全局区)、堆区、栈区

什么是代码区、常量区、静态区(全局区)、堆区、栈区?内存主要分为:代码区、常量区、静态区(全局区)、堆区、栈区这几个区域代码区:存放程序的代码,即CPU执行的机器指令,并且是只读的。内存是由系统控制的。常量区:存放常量(程序在运行的期间不能够被改变的量,例如: 10,字符串常量”abcde”, 数组的名字等) 。静态区(全局区):静态变量和全局变量的存储区域是一起的,一旦静态区的...

2019-01-28 16:10:49 390

原创 函数指针和指针函数、数组指针和指针数组

指针函数定义: 带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针。声明格式: 类型标识符 *函数名(参数表) 例如: int *p(int); // 参数任意 首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函...

2019-01-26 11:09:51 474

原创 在输出时可以去除小数点后多余的零

输入5个数(含负数、小数)将它们按由小到大的顺序排列起来提示:需要排数的数字通过参数传递进来,例如:输入:./a.out -1 2.1 -3 5 7 输出: -3 -1 2.1 5 7#include <stdio.h>#include <string.h>#include <stdlib.h>int main(int ar...

2019-01-25 21:36:36 1422

原创 大小端模式判断

#include <stdio.h>typedef union endian // 联合方式判断法{ int i; char n;} E;int end1(){ E a; a.i = 1; return (a.n == a.i);}int end2() // 字节序判断 直接判断法{ int ...

2019-01-25 20:41:36 108

原创 八种排序

 八大排序1. 冒泡排序void BulleSort(int a[], int len) // 冒泡排序{ int i, j, temp;    for(i = 0; i < len; i++)    {    for(j = len - 1; j > i; --j) // 每次循环一次都找到最小大的值,循环次数减1        {       ...

2019-01-25 20:06:02 147

原创 scanf( )读取空格

#include <stdio.h>int main(){ int ch; char name[32] = {0}; while(1) { scanf("%[^\n]", name); // 读取除 '\n' 外的所有字符 scanf("%*c"); // 清空 '\n' ...

2018-09-27 19:21:30 2268

原创 进程间通信

一、进程间通信方式1、有名管道(FIFO)和管道(PIPO)。管道:(1)单向,先进先出,把一个进程的输入和输出连接在一起。           (2)在管道的尾部写入程序,在管道的头部读出数据。           (3)数据被一个进程读取后,将从管道删除。           (4)进程阻塞情况:读空管道时,或者进程已经写满。、*(无名)管道:父进程和子进程之间的通信 ...

2018-08-22 15:54:44 194

原创 文件保存通讯录(单链表)—— 通讯录3.0

// 头文件#ifndef _ADDRESS_H#define _ADDRESS_H#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <sys/types.h>#include <sys/stat...

2018-08-19 18:30:17 400

原创 单链表通讯录 —— 通讯录2.0

  单链表通讯录 —— 通讯录2.0// 头文件#ifndef _ADDRESS_H#define _ADDRESS_H#include <stdio.h>#include <stdlib.h>#include <string.h>#define SUCCESS 10000#define FAILURE 10001#define TRU...

2018-08-19 18:24:05 350

原创 localtime( )函数

localtime( )函数void local_time() // 打印我们想要的时间格式{ char T[40]; time_t tmpcal_ptr; struct tm *tmp_ptr = NULL; time(&tmpcal_ptr); tmp_ptr = localtime(&tmpcal_ptr);//转换成当地时间...

2018-08-17 23:04:45 4828

原创 停车场

停车场项目需求问题描述:停车场是一个能放 n 辆车的狭长通道,只有一个大门,汽车按到达的先后次序停放。若车场满了,车要停在门          外的便道上等候,一旦有车走,则便道上第一辆车进入。当停车场中的车离开时,由于通道窄,在它后面的车          要先退出,待它走后在依次进入。汽车离开时按停放时间收费。基本功能要求:          (1)建立三个数据结构分别是:停放栈、...

2018-08-16 23:41:29 332

原创 系统编程之文件编程

                                                        系统编程之文件编程Linux文件可分为:普通文件,目录文件,链接文件,设备文件;1、文件打开与创建int open(const char *pathname, int flags); int open(const char *pathname, int flags, mo...

2018-08-13 23:18:04 156

原创 排序

 #include<stdio.h>int a[8] = {1,3,5,4,0,2,9,8};/*void Insertsort(int *a,int len) // 直接插入排序{ int i,j,tmp; for(i = 1; i < len; i++) { tmp = a[i]; for(j = i...

2018-08-12 19:41:07 106

原创 链式队列

链式队列//头文件#ifndef _LINKQUEUE_H#define _LINKQUEUE_H#include<stdio.h>#include<stdlib.h>#define SUCCESS 10000#define FAILURE 10001#define TRUE 10002#define FALSE 10003struc...

2018-08-11 23:10:11 124

原创 二叉树三种遍历

二叉树三种遍历(1)先序遍历规则是若二叉树为空, 则空操作返回,否则先访问根结点,然后先序遍历左子树,再先序遍历右子树,如图:ABDGHCEIF                                              (2) 中序遍历 规则是若树为空,则空操作返回,否则从根结点开始(注意并不是访问根结点),中序遍历根结点的左子树,然后是访问根结点,最后中序遍历...

2018-08-10 20:46:33 183

原创 使用队列实现等腰的杨辉三角

使用队列打印等腰的杨辉三角头文件#ifndef _QUEUE_H#define _QUEUE_H#include<stdio.h>#include<stdlib.h>#define SIZE 30#define SUCCESS 10000#define FAILURE 10001#define TURE 10002#define F...

2018-08-09 13:53:23 588

原创 栈实现计算器

在表达式中的转换规则操作数 :进栈操作符 : 1)进栈:     空栈 ;优先级高;栈顶是 "(  "同时表达式不是 "  )"              2)出栈并计算:表达式符号的优先级不高于栈顶符号 ;表达式为 "  )" 同时栈顶不为 "(   "; 表达式 " \0 " 同时栈不为空              3)出栈但不计算:表达式为  "  )"同时栈顶为 &

2018-08-08 21:29:28 115

原创 链表头插和尾插

链表头插和尾插#include<stdio.h>#include<stdlib.h>#include<string.h>struct list{ int data; struct list *next;};typedef struct list ST;/*ST *creat_link()//尾插{ int a; ST *h,*p...

2018-08-07 21:28:50 165

原创 实现入栈元素排序

实现入栈元素排序头文件stack.h#ifndef _STACK_H_#define _STACK_H_#include <stdlib.h>#define SUCCESS 10000#define FAILURE 10001#define TRUE 10002#define FALSE 10003#define SIZE ...

2018-08-06 21:30:13 163

原创 链表逆序

链表初始化int listInit(note **l) //初始化{ l = (note *)malloc(sizeof(note)*1); if(NULL == *l) { return FAILURE; } (*l)->next = NULL; return SUCCESS;}int Insert(note *...

2018-08-05 20:28:18 98

原创 链表常用操作

链表基本操作头文件  linklist.h//头文件#ifndef _LIST_H#define _LIST_H#define SUCCESS 10000#define FAILURE 10001#define TURE 10002#define FALSE 10003typedef int ET;struct Note{ ET *data; st...

2018-08-04 23:52:19 131

原创 小程序

由8整数形成奇特的立方体       任意给出8个整数,将这8个数分别放在一个立方体的八个顶点上,要求每个面上的四个数之和皆相等。#include<stdio.h>int main(){ int a,a1,a2,a3,b,b1,b2,b3; int c[9],ii = 0,i,flag; for(i = 1;i <= 8; i++) { prin...

2018-08-03 19:33:08 202

原创 头文件编写格式

数据结构、枚举、分文件数据结构包括线性表(直接前驱,直接后继)、顺序表、单链表、栈、队列、树。(排序)线性结构分为顺序结构(连续)和链式结构(不连续).头文件编写:#ifndef _SEQUENCELIST_H#define _SEQUENCELIST_H..............//子函数声明、宏定义等.......#endif枚举enum sum(a,b...

2018-08-02 20:59:19 955

转载 文件的打开与关闭

1.文件操作的步骤(1)打开文件。(2)文件读取。(3)关闭文件。打开文件要用库函数fopen( ),其调用的格式为:FILE fp;//用fp作为文件指针变量名fp = fopen("文件名","文件使用方式");为确保文件的正常操作,需检测文件是否正常打开,即打开文件的操作是否成功。常用下面的程序段来打开文件:if((fp=fopen("filename","w"))...

2018-08-01 21:24:04 1751

空空如也

空空如也

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

TA关注的人

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