-------------------------------------资源来源于网络,仅供自学使用,如有侵权,联系我必删.
第一:
警示 : 易错的优先级
错误:
#include <stdio.h>
#include <malloc.h>
typedef struct _demo
{
int* pInt;
float f;
} Demo;
int func(int v, int m)
{
return (v & m != 0); //(v & (m != 0))
}
int main()
{
Demo* pD = (Demo*)malloc(sizeof(Demo));
int *p[5];//int* p[5] 指针数组
int *f(); // int* f() 函数为空,返回一个指针
int i = 0;
i = 1, 2; //(i = 1), 2
*pD.f = 0;// *(pD.f) 对p取f偏移,然后进行解除引用操作
free(pD);
return 0;
}
正确:
#include <stdio.h>
#include <malloc.h>
typedef struct _demo
{
int* pInt;
float f;
} Demo;
int func(int v, int m)
{
return ((v & m) != 0);