C/C++中结构成员运算符(.)和间接成员运算符(->)的运用

王朝c/c++·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

#include<stdio.h>

int main(void)

{

int i=12;

struct part_date_tag{

int month;

}pp;

struct part_date_tag *p;

p=&pp;

p=i;

printf("%d\n",&p->month);

getch();

}

#include<stdio.h>

int main(void)

{

int i=12;

struct part_date_tag{

int month;

}pp;

struct part_date_tag *p;

p=&pp;

p=i;

printf("%d\n",&p->month);

//因为前面的的赋值语句中是把实例的的地址赋给指针p的,

//变量i的值赋给p是把数值存储在p在内存中的地址,在输

//出成员moth的结果时,程序就从地址中取出数据来,因此必须加上&符号

}

#include<stdio.h>

int main(void)

{

int i=12;

struct part_date_tag{

int month;

}pp;

struct part_date_tag *p;

p=&pp;

p->month=i; //直接把i赋给成员month

printf("%d\n",p->month); //在输出时如果加上&符号,输出的就是month在内存中的地址了

getch();

}

#include<stdio.h>

int main(void)

{

int i=12;

struct part_date_tag{

int month;

}pp;

struct part_date_tag *p;

p=&pp;

(*p).month=i; //由于结构成员运算符(.)的优先级比间接运算符(*)高,因此

//必须用圆括号将指针括起来

printf("%d\n",(*p).month); //在输出时也可以写成printf("%d\n",&p->month);

getch();

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航