仔细阅读如下代码:
#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=0;
free(pD);
return 0;
}
C语言中的隐式转换
算术运算中,低类型转换为高类型
赋值运算中,表达式的值转换为左边变量的类型
函数调用时,实参转换为形参的类型
函数返回值,return表达式转换为返回值的类型
#include <stdio.h>
int main()
{
int i=-2;
unsigned int j=1;
if((i+j)>0)
{
printf(“i+j>0”);
}
printf(“i+j=%d\n”,i+j);
}
//结果:i+j>0 i+j=-1
//负数以补码(反码加一)存储
//-2=0xFFFFFFFE +1 -->0xFFFFFFFF(unsinged int) -->-1(int)