南昌大学技术交流...吧 关注:89贴子:975
  • 11回复贴,共1

11月30日信安部讲课代码讲义(c语言:动态内存、作用域、结构

只看楼主收藏回复

今天讲课内容依次为:
1.变量、常量在内存中的存在方式(附带const变量)
2.结构体、共用体的声明与用法
3.#define的关键字替换
4.内存的存在时限(系统自动分配内存的作用域、以及动态内存的申请和释放)
5.一维动态数组与二维动态数组的申请
6.链表的思想
呵呵,汝可识得此朕


IP属地:广东来自WindowsPhone客户端1楼2015-11-30 22:25回复
    1.变量和常量都占用内存,常量只能读取,变量可以修改以及读取,通过const可以将变量的修改权限禁止
    呵呵,汝可识得此朕


    IP属地:广东来自WindowsPhone客户端2楼2015-11-30 22:30
    回复
      2.结构体是一堆有关系的变量的捆绑,共用体是几个变量共用一块内存区域(那些变量不可同时存在),声明结构体、共用体相当于声明一种数据类型,然后再通过这种数据类型声明变量(结构体变量或者),结构体、共用体的数据成员可以通过.符号访问,结构体、共用体指针可以通过->来访问数据数据成员,【(指针)->数据成员】相当于【*(指针).数据成员】。
      呵呵,汝可识得此朕


      IP属地:广东来自WindowsPhone客户端3楼2015-11-30 22:43
      回复
        #define N a+b的作用是把程序里所有的N替换成a+b,只进行替换,例如出现N*c的话会替换成a+b*c,先算b*c再算a+的运算,所以要慎用
        呵呵,汝可识得此朕


        IP属地:广东来自WindowsPhone客户端4楼2015-11-30 22:47
        回复
          1.系统申请的内存一般在作用域内有效,在离开作用域时候释放(解除占用)
          2.作用域内不允许存在同名的。。。变量,会产生二义性
          3.动态内存申请十分灵活,但是一旦没有进行free就会一直占用内存,记得free
          呵呵,汝可识得此朕


          IP属地:广东来自WindowsPhone客户端5楼2015-11-30 22:54
          回复
            5.一维数组是一块连续的内存区域,二维数组也是一块连续的内存区域,二维数组只不过通过乘法和加法解决了行和列的问题,二维数组的偏移量=行偏移量*每行的的数据量+列偏移量(数组的下标访问就是访问首地址指针加上偏移量之后所指向的数值),所以也可以通过申请一块连续的内存区域来实现。
            呵呵,汝可识得此朕


            IP属地:广东来自WindowsPhone客户端6楼2015-11-30 23:06
            回复
              1.链表就是将一堆不连续的动态内存用指针连在一起
              2.相对于数组,链表的插入和删除数据显得比较方便
              3.链表的访问比数组麻烦(不能用偏移量访问,只能通过指针一个一个找)
              4.链表的头head和数组名有着异曲同工的作用
              5.申请内存之后记得用free释放
              呵呵,汝可识得此朕


              IP属地:广东来自WindowsPhone客户端7楼2015-11-30 23:12
              收起回复
                今日主要代码:无,都在书上
                今日扩充知识:数据恢复的相关知识以及编码方式造成乱码的相关知识
                呵呵,汝可识得此朕


                IP属地:广东来自WindowsPhone客户端8楼2015-11-30 23:14
                回复
                  666666


                  IP属地:甘肃来自手机贴吧9楼2015-11-30 23:42
                  回复
                    顶顶顶


                    IP属地:湖北10楼2015-12-01 20:22
                    回复
                      老大棒棒的!


                      来自Android客户端11楼2015-12-03 14:11
                      回复