注意:本文中代码均使用 Qt 开发编译环境
关于指针:
(1)指针的类型是他所指向的变量的类型,而不是指针本身数据值的类型,任何一个指针本身的数据值都是
unsigned long int 型;
(2)允许声明指向void类型的指针。该指针可以被赋予任何类型对象的地址。例
void *general;
使用示例:
p, li { white-space: pre-wrap; }
#include <QCoreApplication>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
int *i_pointer;
void *void_pointer;
int i;
i_pointer = &i;
void_pointer = &i;
i = 10;
qDebug() << "Output int i value = " << i;
qDebug() << "Output void pointer = " << void_pointer;
qDebug() << "Output int pointer = " << i_pointer;
// qDebug() << "Output void pointer value = " << *void_pointer;
qDebug() << "Output void pointer to int pointer value = " << *(int*)void_pointer;
qDebug() << "Output int pointer value = " << *i_pointer;
return a.exec();
}
注意注释掉的部分,这样的用法是错误的,必须要先将void类型的指针转换为正确类型,再进行取值操作。