复习6:void指针和结构体

    技术2022-05-20  43

    1.void指针的安全操作有:

       1.把任何对象的指针值赋给空指针.

       2.两个空指针相互赋值,并可比较相等.

       3.可以显示地把空指针转换的另一类型.

    除此之外其他所有操作都是不安全的.看下例:

    void f(int* pi){ void* pv = pi; //ok *pv; //error,void* 不能间接引用 pv ++; //error,void不能增量(不知道被指对象的大小) int* p2 = static_cast<int*> (pv); //ok double* pd1 = pv; //error double* pd2 = pi; //error double *pd3 = static_cast<double*> (pv); //不安全 }

    2.结构类型对象的大小(sizeof)未必是其成员大小之和,这是因为许多机器都在分配内存是做"对齐"操作,如把整数分配在机器字的边界上.在这些机器上,对齐会在结构中造成"空洞",使得结构的大小多余成员大小这和.

     

    ps:字符串总是以'/0'结束.这是为了兼容标准函数,如strlen,strcmp等等.


    最新回复(0)