天天看點

char和short 給int指派或與int比較時 需要特别注意

#include <stdio.h>

int main()

{

    int     a;

    char    c =0x81;

    a = c;

    printf("%x\n", a); //0xffffff81

}

#include <stdio.h>

int main()

{

    int     a;

    char    c =0x81;

    a = c & 0xff;

    printf("%x\n", a); //0x81

}

#include <stdio.h>

int main()

{

    char    buf[8];

    buf[0] = 1;

    buf[1] = 0xf2;

    if(buf[0] == 1)

        printf("buf0 == 1\n");

    if(buf[1] == 0xf2)

        printf("buf1 == 0xf2\n"); 

    printf("aa:%x\n", aa);         //f2

    printf("buf1:%x\n", buf[1]); //fffffff2

}