C語言的核心在於指針,這2個指針題目,如果你不用編譯就能得出正確的答案,那你一定是C的高手,不擇不扣的高手—指針並不難!
第一題:求p[-1]、p[-5]的值
#include <stdio.h>
int main(void)
{
char* p = NULL;
char* tmp = "12345678";
p = (char* )(tmp+4);
//p[-1] = ?, p[-5] = ?。
return 0;
}
第二題:求p[0]--p[5]的值
#include <stdio.h>
int main(void)
{
char* data = "12345678";
short* tmp = NULL;
char p[6] = {0};
tmp = (short *)&p[2];
*tmp = atoi(&data[4]);
//p[0] = ?, p[1] = ?, p[2] = ?, p[3] = ?, p[4] = ?, p[5] = ?。
return 0;
}
如果你覺得意猶未盡,那就再來一個吧:
int* p = (int* )0x1234;
printf("p = %p, *p = %d\n", p, *p);
這個題的答案你總該知道吧。。。。。。