网站建设栏目标语口号,如何备份网站的,电脑外设网站建设论文,北京吴勇设计工作室第一节课复习了c语言的一些知识#xff0c;并简单介绍了数据结构这门课程。 1、引用和函数调用#xff1a;
1.1引用#xff1a;对一个数据建立一个“引用”#xff0c;他的作用是为一个变量起一个别名。这是C对C语言的一个重要补充。
用法很简单#xff1a;
int a 5; …第一节课复习了c语言的一些知识并简单介绍了数据结构这门课程。 1、引用和函数调用
1.1引用对一个数据建立一个“引用”他的作用是为一个变量起一个别名。这是C对C语言的一个重要补充。
用法很简单
int a 5;
int b a;
b是a别名b与a代表的是同一个变量占内存中同一个存储单元具有同一地址。
注意事项
声明一个引用同时必须初始化及声明它代表哪一个变量。作为函数参数时不需要初始化 在声明一个引用后不能再作为另一变量的引用。 3。不能建立引用数组。
1.2函数调用
其实还是通过函数来理解了一下引用
void Myswap1(int a,int b)
{int c a;a b;b c;
}void Myswap2(int a,int b)
{int c a;a b;b c;
}void Myswap3(int *pa,int *pb)
{int c *pa;*pa *pb;*pb c;
}
这三个函数很简单第一个只传了值进来不改变全局变量而第三个也很熟悉就是传递了地址方便操作。依旧是“值传递”的方式只不过传递的是变量的地址而已那二就彻底改变了这些东西引用作为函数参数传入的实参就是变量而不是数值真正意义上的“变量传递”。 2、数组和指针
这一块讲得比较简单就是基本知识。
主要内容
1、函数传数组就是传了个指针这个大家都知道所以传的时候你写arr[],里面写多少或者不写都是没关系的那你后面一定要放一个变量来把数组长度传进来。
2、还有就是定义int arr[5]你访问越界是不会报错的但是逻辑上肯定就没有道理了。那用typedef int INTARR[3];访问越界在vs上会报错要注意。
3、再说一下指针和数组名字到底有什么区别这本来就是两个东西可能大家没注意罢了。
第一指针可以自增数组名不行因为是常量啊。
第二地址不同虽然名字[n]都可以这样用但是数组名地址就是第一个元素地址。指针地址就是那个指针的地址指针里存的才是第一个元素地址。
第三sizeof空间不一样数组是占数组那么大空间。指针是四个字节。
本来就是俩东西这么多不同都是本质不同的体现。
3、结构体
也是讲的基本操作基本就是这个东西
typedef struct Date
{int Year;int Month;int Day;struct Date *pDate;
}Date, *pDate;
1、内部无指向自己的指针才可以第一行先不起名字。
2、内部不能定义自己的如果能的话那空间不就无限了么。很简单的逻辑 指针我不习惯还是写Date *比较顺眼
3、有同学没注意访问结构体里的东西怎么访问
Date.这种形式或者有指向这个节点的指针p可以p-这种形式别写错了。 4、还有就是结构体能直接这么赋值 Date d1 {2018,9,11};
我竟然不知道以前还傻乎乎的一个一个赋值呢。 5、还有想写一下结构体有什么优点。。
这一块可能写的就不好了因为不是老师讲的。。
比如学生成绩如果不用结构体我们一个学生可能有十几个信息那定义变量和操作就很烦琐了数据结构有一种松散的感觉。用一个结构体来表示更好无论是程序的可读性还是可移植性还是可维护性都得到提升。还有就是函数调用的时候传入相当多的参数又想操作或者返回那是很麻烦的事。现在只传入一个结构体就好了操作极其简单。总结一下就是好操作中看中用有机地组织了对象的属性。以修改结构体成员变量的方法代替了函数(入口参数)的重新定义。
基本就这样吧。
6、还有就是它了typedef int INTARR[3];这样直接定义了一个数据类型长度为3的数组然后直接这样用就可以了
INTARR arr1; 回忆完C语言储备知识然后讲了数据结构的基本概念 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及他们之间的关系和操作等的学科。
数据是对客观事物的符号表示在计算机中指能输入到计算机中并被处理的符号总称。
数据元素数据的基本单位
数据项数据的不可分割的最小单位
数据对象性质相同的数据元素的集合。
举例动物是数据某只动物是数据元素猫狗是数据对象颜色可以是数据项。 数据元素之间存在某种关系这种关系成为结构。
四种基本结构
集合除了同属一个集合无其他关系。
线性结构一对一的关系
树形结构一对多的关系
图状结构多对多的关系