输出代码示例

时间:2014-10-08 06:41:20

标签: c

int main(){
    int a = 330;
    char *p;
    p = (char *) &a;
    printf("%d",*p);
    return 0;
}

这74怎么样? Plz解释一下?

http://codepad.org/TVeJhU1w

2 个答案:

答案 0 :(得分:2)

如果一个整数是4个字节,则其中有4个字符。尝试理解此代码的输出:

int main() {
    int a =330, i;
    char *p; 

    printf("%08x\n", a); 
    p=(char *)&a;
    for (i = 0; i < sizeof(int); i++) {
        printf("%02x ", p[i]);
    }   
    printf("\n");
    for (i = 0; i < sizeof(int); i++) {
        printf("%02d ", p[i]);
    }   
    printf("\n");
    return 0;
}

打印:

0000014a
4a 01 00 00 
74 01 00 00 

答案 1 :(得分:0)

这里使用的是字符指针指向整数变量。 因为字符只是一个字节,所以你得到74。 如果您使用了整数指针,那么您将获得330。

330 in binary is : 0000 0001 0100 1010

您在这里看到的价值是

74 : 0100 1010(1byte)