摘要: 1,共用体属于构造类型,它可以包含多个类型不同的成员,和结构体非常类似,但也有不同之处,共用体有时也被称为联合或者联合体,定义格式为: union 共用体名{ 成员列表 }; 2,结构体和共用体的区别在于,结构体的各个成员会占用不同的内存,互相之间没有影响,而共用体的所有成员占用同一段内存,修改一个 阅读全文
posted @ 2020-02-25 17:43 shanlu 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 1,结构体和结构体变量 2,结构体是自定义的数据类型,表示的是一种数据类型 结构体变量代表一个具体变量 struct Cat cat1; Cat是结构体数据类型,cat1 是一个Cat变量 Cat就像一个“模板”,定义出来的结构体变量都含有相同的成员,也可以将结构体比作“图纸”,将结构体比作“零件” 阅读全文
posted @ 2020-02-25 17:32 shanlu 阅读(490) 评论(0) 推荐(0) 编辑
摘要: 1,C程序中,不同数据在内存中分配说明 ①全局变量 内存中的静态存储区 ②非静态的局部变量 内存中的动态存储区 stack 栈 ③临时使用的数据 建立动态内存分配区域,需要时随时开辟,不需要时及时释放 heap 堆 ④根据需要向系统申请所需大小的空间,由于未在声明部分定义其为变量或者数组,不能通过变 阅读全文
posted @ 2020-02-25 16:40 shanlu 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 1,函数指针变量可以作为某个函数的参数来使用的,回调函数就是一个通过函数指针调用的函数。 2,回调函数是由别人的函数执行时调用你传入的函数(通过函数指针完成) 3,使用回调函数的方式,给一个整型函数 int arr[10] 赋10个随机数 4,指针细节 ①指针变量存放的是地址,从这个角度看指针的本质 阅读全文
posted @ 2020-02-25 15:51 shanlu 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 1,一个函数总是占用一段连续的内存区域,函数名在表达式中有时也会被转换为该函数所在的内存区域的首地址,这和数组名非常相似 2,把函数的这个首地址(或称入口地址)赋予一个指针变量,使指针变量指向函数所有的内存区域,然后通过指针变量就可以找到并调用该函数,这种指针就是函数指针 3,函数指针定义 retu 阅读全文
posted @ 2020-02-25 15:37 shanlu 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 1,C语言允许函数的返回值是一个指针(地址),这样的函数称为指针函数 2,请编写一个函数 strlong(),返回两个字符串中较长的一个 3,指针函数细节 ①用指针作为函数的返回值时候需要注意,函数运行结束后,会销毁在它内部定义的所欲局部数据,包括局部变量,局部数组和形式参数,函数返回的指针不能指向 阅读全文
posted @ 2020-02-25 15:07 shanlu 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 1,当函数的形参类型是指针类型时,使用该函数时,需要传递指针,或者地址,或者数组给该形参 2, 若不是通过指针传递,main中num的值将不会被改变,因为执行 test 函数时,只是 test 栈中的 p 变为91,main栈中的num 仍然是90 3,传数组给指针变量 数组名本身就代表数组的首地址 阅读全文
posted @ 2020-02-25 14:23 shanlu 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 1,指向指针的指针是一种多级间接寻址的形式,或者说是一个指针链,通常,一个指针包含以变量的地址,当我们定义一个指向指针的指针时,第一个指针包含了第二个指针的地址,第二个指针包含实际值的位置 2,①一个指向指针的指针变量必须如下声明,即在变量名前放置两个星号,例如,下面声明了一个指向 int 类型指针 阅读全文
posted @ 2020-02-25 13:56 shanlu 阅读(433) 评论(0) 推荐(0) 编辑
摘要: 1,要让数组的元素,指向 int 或其他数据类型的地址(指针),可以使用指针数组 2,指针数组的定义 数据类型* 指针数组名【大小】 比如:int* ptr[3] ptr 声明为一个指针数组,由 3 个整数指针组成,因此,ptr中的每个元素,都是一个指向 int 值的指针。 3, 指针数组内存布局 阅读全文
posted @ 2020-02-25 13:20 shanlu 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 1,①指针是C语言的精华,也是C语言的难点 ②指针,也就是内存的地址,所谓指针变量,也就是保存了内存地址的变量 ③获取变量的地址,用 & ,比如,int num= 10 获取 num 的地址,&num ④指针类型,指针变量存的是一个地址,这个地址指向的空间存的才是值 比如:int* ptr = &n 阅读全文
posted @ 2020-02-25 12:59 shanlu 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 1,断点调试是指自己在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下。然后程序可以进行分析从而这个 bug,使用断点调试可以帮助我们最终查看C程序源代码的执行过程,提高程序员的水平 阅读全文
posted @ 2020-02-25 11:41 shanlu 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 1,定义:语法: 类型 数组名[大小][大小] 如: int a[2][3] 2,二维数组在内存的存在形式,各个元素的地址是连续分布的,即在前一个元素基础上加4(int 字节) 1 void main() { 2 int a[5][6]; //没有初始化,则是分配的内存垃圾值 3 4 //全部初始化 阅读全文
posted @ 2020-02-25 01:50 shanlu 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 1,在C中,我们常用的查找有两种: ①顺序查找 ②二分查找 2,顺序查找:有一个数列:{ 23,1,34,89,101 } 猜数游戏:从键盘中任意输入一个数,判断数列中是否包含该数【顺序查找】 如果找到了,就提示找到,并给出下标值。找不到就提示 没有 1 int seqSearch(int arr[ 阅读全文
posted @ 2020-02-25 01:19 shanlu 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 1,排序,排序也称排序算法,排序是将一组数据,按照指定的顺序进行排列的过程 2,排序的分类: ①内部排序:指将需要处理的所有数据都加载到内部存储器(内存)中进行排序 ②外部排序:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序 3,冒泡排序 ①基本思想:通过对排序序列从前向后(从下标较小的 阅读全文
posted @ 2020-02-25 00:31 shanlu 阅读(175) 评论(0) 推荐(0) 编辑