追 ‘C’ 记...
北顾丶
如果你感到此时自己很辛苦
告诉自己
容易走的是下坡路
辛苦
是因为你正在走上坡路
展开
-
C++ 指针的概述 三
指针变量作为函数参数——实现地址传递特点:共享存储单元,“双向”传递例: 将两个数从大到小输出 (不用指针)#include swap(int x, int y){ int temp; temp=x; x=y; y=temp;}main(){ int a,b; scanf("%d%d",&a,&原创 2014-12-21 09:20:28 · 483 阅读 · 0 评论 -
C++ 结构体(四)
1.结构体变量的初始化结构体变量的初始化可以采用两种形式:定义结构体变量时初始化和给结构体变量赋值。例如:struct stu_info{ char name[12]; int num; char id_card[19]; int m_score;原创 2014-12-26 20:15:58 · 765 阅读 · 0 评论 -
C++ 结构体(六)
1.结构体和指针 指向结构体变量的指针定义形式:struct 结构体名 *结构体指针名; 例如:struct student *p;struct student{ int num; char name[20]; char sex; int a原创 2014-12-26 20:54:24 · 582 阅读 · 0 评论 -
C++ 动态数据结构(一)
1.我们为什么要用动态数据数据结构呢?因为类型相同的数据用数组存储存在许多的问题:(1)定义静态数组时必须指定数组的元素个数,此后无法更改数组大小,带来很多的不便,可能造成空间浪费或不足。(2)用指针可以申请动态数组,空间不会浪费或不足,由于动态申请的空间必须是连续的区域,所以当申请“大片”的连续区域时,有可能会失败。(3)在数组中插入或删除元素时需要大量移动元素,效率低。原创 2014-12-27 09:26:14 · 1434 阅读 · 0 评论 -
C++ 动态数据结构(三)
1.在单链表中查找数据在链表中查找数据,可以通过在遍历的过程中跟要查找的内容比较来实现。对于查找结果,在查找成功时,可以返回指向结点的指针,查找失败时,返回空指针。具体代码:#include struct Link * Find(struct Link * head,int x);struct Link{int data;struct Link *ne原创 2014-12-27 18:07:20 · 726 阅读 · 0 评论 -
C++ 动态数据结构(五)
1.单链表的建立之尾插法 从键盘读取一个数据赋值给 p 所指的结点,并使 p->next为空,即 p->next = NULL;若原链表为空,则新建结点为头结点。具体代码:#include #include struct Link{int data;struct Link *next;};/* 创建链表,当输入数据 data 为 0 时结束创原创 2014-12-27 19:33:21 · 655 阅读 · 0 评论 -
C++ 递归的详解(一)
这几天看了一下递归1.递归递归:一个对象部分地由它自己组成或定义,称为递归。递归函数:一个函数直接或间接地调用自身。递归调用:在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。C语言的特点之一就在于允许函数的递归调用。2.一般我们什么时候会用到递归呢?(1)问题本身有递归的数学定义。(2)使用了递归的数据结构。(原创 2014-12-29 22:14:55 · 1595 阅读 · 0 评论 -
C++ 递归函数的详解
说到递归函数,就会想起递归的快速排序。1.快速排序是什么呢?快速排序的基本思想是:通过一趟快速排序,把待排记录分成两个子序列,其中一个子系列中的记录都小于另一个子序列,然后,分别对两个子序列进行快速排序。 可以看出,快速排序的核心就是划分子序列。2.下面让我们了解一下递归函数快速排序的思想:(1)将待排序的数据放入某数组中(如数组a[]) 中,下标从 low原创 2014-12-29 22:32:06 · 1106 阅读 · 0 评论 -
C++ 函数指针的详解
1.函数指针(1)一般来说函数通常包括一系列指令,通过编译后,在内存中占据了一块存储空间。它有一个起始地址,这个起始(入口)地址就称为函数的指针。(2)主函数在调用子函数时,就是让程序转移到函数的入口地址开始执行。(3)我们可以定义一个指针变量用来指向函数,然后通过使用该指针变量调用此函数。指向函数的指针:就是能够存放某个函数入口地址的指针变量。总结了一下,原创 2014-12-29 22:58:49 · 810 阅读 · 1 评论 -
C++ 结构体(一)
结构体类型结构体是一种构造数据类型用途:把不同类型的数据组合成一个整体——自定义数据类型结构体类型的声明 ;struct [结构体名]{ 类型标识符 成员名; 类型标识符 成员名; …………….};其中,struct是关键字,不能省略构成结构体的成员,写在大括号内,成员类型可以是基本原创 2014-12-26 19:25:31 · 543 阅读 · 0 评论 -
C++ 基础回顾
(1) 基本数据类型1. char, int, float, double, void2. long int, short int, signed int, unsigned int(2) 变量和常量#defineconstenum int a; float b; double c, d; #define PI 3.1415926原创 2014-12-26 19:02:08 · 413 阅读 · 0 评论 -
C++ 动态数据结构(二)
1.单链表结点定义的格式:struct Link {type data; struct Link *next;}; 虽然单链表插入、删除方便,不需要移动其他结点的优点,但是它也有一些缺点: 只能顺序访问,一旦断链就会丢失其中的数据,所以要注意一下。2.单链表的遍历遍历就是逐个访问每个数据元素的过程。遍历是各种其他操原创 2014-12-27 09:48:40 · 632 阅读 · 0 评论 -
C++ 指针的概述 二
指针变量的定义及初始化一般形式: 数据类型 *指针名;例 int *p1,*p2; float *q ; static char *name;这里需要注意的是:1、int *p1, *p2 与 int p1, p2;2、指针变量名是p1,p2 ,不是*p1,*p23、指针变量只能指原创 2014-12-21 08:23:17 · 554 阅读 · 0 评论 -
C++ 指针的概述 一
(1)为什么要引入指针的概念1.指针为函数提供修改变量值的手段。2.指针为C语言的内存动态分配内存系统提供支持3.指针为动态数据结构(如链表,队列,二叉树等)提供支持4.指针可以改善某些子程序的效率(2)指针的概念 指针式C语言提供的一种特殊而又非常重要的数据类型,可以有效的表示许多复杂的数据类型。例如,队列(Queue),堆栈(Stack),链表(Lin原创 2014-12-21 08:19:44 · 475 阅读 · 0 评论 -
C++ 选择排序法
选择排序:已知一组无序数据a[1]、a[2]、、、、a[n],假如将其按升序排列。首先比较a[1]与a[2]的值,若a[1]大于a[2]则交换两者的值,否则不变。再比较a[1]与a[3]的值,若a[1]大于a[3]则交换两者的值,否则不变。再比较a[1]与a[4],依此类推,最后比较a[1]与a[n]的值。这样处理一轮后,a[1]的值一定是这组数据中最小的。再将a[2]原创 2015-01-11 08:36:54 · 1697 阅读 · 0 评论 -
C++ 结构体(二)
1.用typedef定义类型名typedef 的使用关键字typedef用来为已经存在的数据类型定义一个“别名”,使程序“更具有”可读性。 例如: typedef unsigned int uint; typedef int * ptrint; typedef struct stu_inf原创 2014-12-26 19:38:52 · 743 阅读 · 0 评论 -
C++ 动态数据结构(四)
1.在链表中间插入数据 如果按照结点数据排序结果应在链表中间插入新结点,则将待插入结点p的指针域指向下一结点,而前一结点的指针域指向待插入的结点。 p->next = pr->next;pr->next = p;2.在链表的尾部插入数据 如果在链表的末尾插入新结点,则将链表的最后一个结点的指针指向待插入结点p,而待插入结点p的原创 2014-12-27 19:09:41 · 687 阅读 · 0 评论 -
C++ 结构体(三)
结构体变量的定义的三种方式第一种方法,先定义结构体类型,再定义结构体变量一般形式:struct stu_info{ char name[12]; int num; char id_card[19]; int g_score; int x_原创 2014-12-26 19:54:06 · 730 阅读 · 0 评论 -
C++ 结构体(五)
1.结构体数组结构体数组中的每个元素是都是一个结构体变量。结构体数组的定义有三中方法:第一种方法:struct student{ int num; char name[20]; char sex; int age;};struct student stu[2原创 2014-12-26 20:19:13 · 535 阅读 · 0 评论