- 博客(14)
- 资源 (62)
- 收藏
- 关注
原创 C语言 指针变量和整数的运算
在C 语言中,指针也能进行自加、自减运算以及与整数做加减运即让指针变量加、减1或者加上一个整数、减一个整数都是合法的运算。指针运算与整数的运算并不相同,指针变量运算的时候,表示了数据的移动。float X ,*pf=&x ;假设变量X 的地址为4 0 0 0 H , pf+5所表示的地址值为4000H+5*4=4014H 因此表示了当前地址开始往后移动了5 个元素。指针的自加,利...
2019-06-16 16:29:06 2954
原创 C语言 char*和char[]用法
char []定义的是一个字符数组,注意强调是数组。char * 定义的是一个字符串指针,注意强调是指针。char *s定义了一个char型的指针,它只知道所指向的内存单元,并不知道这个内存单元有多大,所以:当char *s = “hello”;后,不能使用s[0]=‘a’;语句进行赋值。这是将提示内存不能为"written"。当用char s[]=“hello”;后,完全可以使用s[...
2019-06-15 16:30:38 78706 11
原创 C语言 野指针、空指针与 万能指针
野指针、空指针与 万能指针1、野指针:野指针是指向一个未知的内存空间,可能在读写的时候出现错误。0-255都是系统保留的 不可以读,不可以写2、空指针 没有指向任何的地址(其指向0的地址)空制指针就是指向内存编号为零的空间,操作该内存空间会报错,一般情况空指针用于程序条件判断3、万能指针:void * 指针可以指向任意变量的内存空间...
2019-06-14 22:21:16 866
原创 C语言 二维数组和指针
二维数组可以看成是元素为一维数组的数组,假设有一个三行四列的二维数组a,它定义为:int a[3][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };a 是二维数组名。a 数组包含 3 行,即 3 个行元素:a[0],a[1],a[2]。每个行元素都可以看成含有 4 个元素的一维数组。而且 C 语言规定,a[0]、a[1]、a[2]分别是这三个一...
2019-06-14 17:21:55 8771 7
原创 C语言 结构体指针
当一个指针变量指向结构体时,我们就称它为结构体指针struct 结构体名 *变量名;//结构体struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在小组 float score; //成绩} stu1 = { "Tom", 12, 18, 'A'...
2019-06-14 11:21:41 3669
原创 C语言 用指针访问数组元素
指针与数组的关系一个变量有地址,一个数组包含若干个元素,每个元素在内存中都有地址。int a[10];int *p = a;比较p和&a[0]的地址是否相同在C语言当中数组的名称代表数组的首地址,如果取数组名称的地址,C语言认为就是取数组的首地址。通过指针使用数组元素通过指针计算,不是把指针当做一个整数,计算结果,而是指针在内存当中移动p + 1代表&a[...
2019-06-14 11:05:11 17404 6
原创 线性表 循环链表
循环单链表循环单链表:循环单链表和单链表的区别在于,表中最后一个结点的指针不是NULL,而改为指向头结点,从而整个链表形成一个环。循环单链表的判空条件不是头结点的后继指针是否为空,而是它是否等于头指针。循环双链表循环双链表:类比循环单链表,循环双链表链表区别于双链表就是首尾结点构成环。当循环双链表为空表时,其头结点的prior域和next域都等于Head。...
2019-06-12 14:02:17 506
原创 线性表 双链表
单链表:单个指针,单向火车双链表:双指针,电梯typedef struct DNode{ //定义单链表结点类型 ElemType data; //数据域 struct DNode *prior,*next; //前驱和后继指针}DNode, *DLinkList;插入1.插入:(方法不唯一)① s->next=p->next;② p->next->...
2019-06-12 11:55:47 174
原创 线性表的链式存储
顺序结构需要一块连续的存储空间,那如果我们只有零散的空间呢?线性表的链式存储是指通过一组任意的存储单元来存储线性表中的数据元素。为了建立起数据元素之间的线性关系,对每个链表结点,除了存放元素自身的信息之外,还需要存放一个指向其后继的指针。typedef struct LNode{ //定义单链表结点类型ElemType data; //数据域struct LNode *next; /...
2019-06-12 09:58:21 242
原创 线性表的顺序表示
线性表的顺序存储又称为顺序表,它用一组地址连续的存储单元,依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素在物理位置上也相邻。线性表中的元素位序从1开始,而数组中元素的下标从0开始可以采用一位数组来实现顺序存储结构。一位数组可以是静态分配,也可以是动态分配。静态分配数组大小事先固定,一旦空间占满,再加数据则产生溢出。线性表的元素类型为ElemType则顺序存储类型描述为:静态分...
2019-06-10 15:51:45 1050
原创 线性表的定义和基本操作
线性表的定义线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列。其中n为表长,当n=0时该线性表是一个空表。若用L命名线性表,则其一般表示如下:其中a1是唯一的“”第一个“”数据元素,又称为表头元素:an是唯一的“”最后一个“”数据元素,又称为表尾元素。除第一个元素外,每一个元素有且仅有一个直接前驱。除最后一个元素外,每一个元素有且仅有一个直接后继。线性表的基本操作1.I...
2019-06-10 15:06:33 5311
原创 C语言 结构体
1.有名构造类型-结构体struct student //<-------结构名{ char name[30]; //<-------结构成员 char sex; int age; float high;}stu; //定义数据类型同时定义stu结构体变量(不要忘记;号,在C语言中,凡是构造类型都要加分号,比如union)struct student...
2019-06-08 21:54:01 117
原创 为什么main()函数要返回int值
在 C89 中,void main( ) 是正确的。在最新的 C99 标准中,只有以下两种定义方式是正确的:int main()int main( int argc, char *argv[] )如果你不需要从命令行中获取参数,请用 int main() ;否则请用 int main( int argc, char *argv[] ) 。main 函数的返回值类型必须是 int ,这样...
2019-06-07 20:48:09 4572
vb在线升级程序(源码)
2009-01-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人