编译器警告(等级 1)C4047
警告c4047:msdn给的解释是:
“operator”:“identifier1”与“identifier2”的间接寻址级别不同
指针可指向变量(一级间接寻址),指向另一个指向变量的指针(二级间接寻址)等。
其实这里的间接级别不同,就是间接寻址级别不同:
关于间接寻址寻址级别不同:
例子:
#include<stdio.h>
// C4047.c
// compile with: /W1
int main() {
char **p = 0; // two levels of indirection
char *q = 0; // one level of indirection
char *p2 = 0; // one level of indirection
char *q2 = 0; // one level of indirection
p = q; // C4047
p2 = q2;
return 0;
}
警告截图:
这个问题如果有时不注意就可能造成错误,如error C2040。