1.使用赋值运算符“=”时,void*只能作为左值不能作为右值。 void*作为一个未指定数据类型的指针,可以指向任何一个数据类型的指针,但是有数据类型的指针,不能指向一个void* 的指针。 代码如下: inti =5;int* pi = &i;void* pv = pi;int* pi1 = pv;//编译错误,void*类型的指针不能初始化为指定类型的...
右左法则是一 个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明 的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文原文是这样说的: The right-left rule: Start reading the declar...
代码中可以看出参数void* pArgs可以使用任意类型的实参,返回值也可以返回任意类型的指针,但是最终需要转换为具体类型才能使用。 void*在C++中的作用其实就是为了实现泛型编程,和Java中使用Object来表示是一样的,所以又称为通用指针和泛指针,不过C++中大部分情况下会使用模板编程来实现泛型。 上面_say函数代码可以使用下...
3.void*使用中的注意点: 1.使用赋值运算符“=”时,void*只能作为左值不能作为右值。 void*作为一个未指定数据类型的指针,可以指向任何一个数据类型的指针,但是有数据类型的指针,不能指向一个void* 的指针。 代码如下: int i = 5; int* pi = &i; void* pv = pi; int* pi1 = pv;//编译错误,void...