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

类别:编程语言 点击:0 评论:0 推荐:
#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();
}

本文地址:http://com.8s8s.com/it/it25793.htm