指针规则
1)如果无输入(未填写输入),自动设为NULL。对于复合类型的指针,只要其中一个成员有输入,就视为有输入,自动申请内存。对于有构造函数的类,申请内存时会调用构造函数。 2)无论几级指针,对于输入,除填写NULL或用EMPTY建立空对象外,所填写的数据都赋值给最终指向的对象,系统会自动申请需要的各级内存。 3)对于多级指针,可以用箭头符号指定需要设为NULL的指针。例如下图中的pppa变量,类型为int***,则:NULL表示pppa为NULL,->NULL表示*pppa设为NULL,->->表示*(*pppa)设为NULL。有效的箭头数最多为四级,即->->->->NULL。
4)无论几级指针,对于输出,除填写NULL外,所填写的数据都表示和最终指向的对象的值进行比较,此时如果指针为NULL或指向非法内存,则报告错误。 5)在输出中可以对空指针进行判断,语法与输入一致。例如下图中的pppa变量,类型为int***,则输出中的:NULL表示pppa的预期结果为NULL,否则报告错误,->NULL表示*pppa预期结果为NULL,->->表示*(*pppa)预期结果为NULL。
指向父对象的空指针 可以用左箭头将父对象指针设为NULL,或判断父对象指针是否为NULL,如下图,case 2:表示将pData->pBase设为NULL,并判断pData->pBase的预期结果为NULL,case
3:表示将pData设为NULL,并判断pData的预期结果为NULL。
左箭头最多允许四级。左箭头只指向类型为指针的父对象,如果父对象的类型为多级指针,则每级指针视为一级父对象,例如,下图中,假如pData的类型不是DATA*,而是DATA**,则case
3的->->NULL指向的是*pData,->->->NULL才指向pData。 左箭头的意义在于减少表格中的有效行,便于数据的管理和维护。下图中,case 2和case 3也可以直接在pData->pBase和pData对应的单元格中填写NULL,但切换到表格模式后,会增加两行。
|