简体   繁体   中英

What is the meaning of changing char pointer to int pointer

I have the following code from previous exam in c:

int main(int argc, char **argv) {
    char s[] = "123";
    int* a = (int*) s;
    printf(("%x"),*a);
    return 0;
}

The output is: 333231

My question is why? how does changing the pointer effect it?

You don't have to declare a separate variable. This would do:

printf(("%x"),(int*)s);

The pointer type dictates how the pointee is interpreted when the pointer is dereferenced.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM