第3讲 5518-20结构体与指针和内存动态分配结构体指针定义指向结构体变量的指针头文件结构体结构体指针的大小使用结构体指针变量引用成员形式(*结构体指针名)成员名;结构体指针名-成员名;结构体变量名成员名指向结构体数组的指针定义:指向结构体数组的指针。运行结果:用指向结构体的指针作函数参数四种方式:用指向结构体的指针作函数参数用结构体变量的成员作参数----值传递用指向结构体变量或数组的指针作参数----地址传递用结构体变量作参数----多值传递,效率低
#
第6讲 5527结构体在内存中存储,字节对齐结构体字节对齐机制结构体变量占据的内存单元的个数应当大于等于其内部所有数据成员占据内存单元数的和。C语言引入了字节对齐机制,一般来说,不同的编译器字节对齐机制有所不同,但还是有以下3条通用准则:(1)结构体变量的大小能够被其最宽基本类型成员的大小所整除;示例:Main函数及运行结构(2)结构体每个成员相对于结构体首地址的偏移量(offset)都是成员
第35讲 5368-71内存分配习题以及小结1、建立动态数组,输入5个学生的成绩,另外用一个函放数检查其中有无低于60分的,输出不合格的成绩。解题思路:用malloc函数开辟一个动态自由区域,用来存5个学生的成绩,会得到这个动态域第一个字节的地址,它的基类型是void型。用一个基类型为int的指针变量p来指向动态数组的各元素,并输出它们的值。但必须先把malloc函数返回的void指针转换为整
第1讲 551-11结构体结构体的定义及分类结构体是一种构造数据类型分类:有名结构体、匿名结构体。结构体的用途把不同类型的数据组合成一个整体简单结构体实例声明结构体变量三种形式(1)第一种形式(2)第二种形式(3)第三种形式结构体类型与结构体变量初始化结构体变量形式一:形式二:structstudent{ int num; charname[20]; char sex; int age; ch
静态数据结构:在编译时为其分配存储空间大小不能改变静态数据结构优点:分配算法简单易于实现使用方便静态数据结构缺点:易浪费存储空间易产生下标越界错误动态数据结构:在运行时为其分配存储空间大小可改变动态数据结构优点:可节约存储空间灵活应用广动态数据结构缺点:分配算法复杂实现难度大 象链表树结构图结构等数据结构都适合用动态数据结构实现指针是实现动态数据结构的有效手段 指针和动态数据结构广泛应
第16讲 5338指针与数组1、指针与数组指向数组元素的指针变量 例 int array[10];int *p; p=&array[0]; //? p=array;或 int*p=&array[0];或int *p=array;数组名是表示数组首地址的地址常量注意:数组名a不代表整个数组,只代表数组首元素的地址。“p=a;”的作用是“把a数组的首元素的地址赋给指针变量p”,而不是“把数组a各元
Eample: 在内存中为80个字符动态分配内存 include include <> void main ( ) { char p p=( char )malloc(80sizeof(char))
int k 系统将给变量k分配2个字节(VC下分配4个字节)的内存单元char ch[10] 系统将给这个数组ch分配10个字节的内存块首地址就是ch的值 所谓动态内存分配是指在程序运行过程中根据程序的实际需要来分配一块大小合适的连续的内存单元 程序可以动态分配一个数组也可以动态分配其它类型的数据单元动态分配的内存需要有一个指针变
第十二章 类和动态内存分配类的动态内存分配当类的构造函数中使用了new来动态的分配所需内存时需要处理三个事情:一 扩展类析构函数 调用delete 或delete[] 来回收分配内存(注意delete与newdelete[]与new[] 匹配的问题且delete 与 delete[] 都与空指针(NULL 或 0) 匹配)二 重载复制构造函数 Time(const Time)主要使复制构造函数进
违法有害信息,请在下方选择原因提交举报