【发布时间】:2011-04-09 14:57:56
【问题描述】:
为了更好地学习指针数学,我编写了这段代码。目的是增加指针抛出的结构并打印它的成员。我知道如何以更简单的方式打印它的成员,但我真的很想知道我的指针数学是如何搞砸的。谢谢。
typedef struct{
int num;
int num2;
char *string;
} astruct ;
int main (int argc, const char * argv[])
{
astruct mystruct = { 1234, 4567,"aaaaaaa"};
astruct *address;
address = &mystruct;
// this does print 1234
printf("address 0x%x has value of:%i\n",address, *address);
address = address + sizeof(int);
//this does NOT print 4567
printf("address 0x%x has value of:%i\n",address, *address);
address = address + sizeof(int);
//this crashes the program, I wanted to print aaaaaaaa
printf("address 0x%x has value of:%s\n",address, **address);
return 0;
}
【问题讨论】: