首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

构造体成员的访问,用指针或直接变量 区别,求解惑

2013-02-25 
结构体成员的访问,用指针或直接变量 区别,求解惑如题,主要疑问在注释里typedef struct _student{int numc

结构体成员的访问,用指针或直接变量 区别,求解惑
如题,主要疑问在注释里

typedef struct _student
{
int num;
char name[2];
}student;
student s;
student * stu =&s;

stu->num = 12;//是否等价于 s.num,为何 s->num是错的

[解决办法]
是否等价于 s.num 等价
student s  s是对象
student * stu stu是指针
[解决办法]
是一样的吧,
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef unsigned int TUInt;

typedef struct studentInfo
{
    char m_name[10];
    TUInt m_age;

}TStudent;


void print(TStudent s)
{
    printf("%s, %d \n", s.m_name, s.m_age);

    return;
}

int main(void)
{
    TStudent* pStudent = NULL;
    TStudent s;
    strcpy(s.m_name,"zenghai");
    s.m_age  = 18;
    print(s);

    pStudent = &s;
    strcpy(pStudent->m_name, "zengge");
    pStudent->m_age  = 20;
    print(*pStudent);

    getchar();

    return 0;
}
[解决办法]
引用:
如题,主要疑问在注释里
C/C++ code?123456789typedef struct _student{    int num;    char name[2];}student;student s;student * stu =&amp;s;     stu->num = 12;//是否等价于 s.num,为何 s->num是错的
              ……


我多说几句吧,对于struct来说默认的字段是public的。所以你没有声明public或是private,protected等,那两个字段都是public的,student s;这是一个结构体对象,student *stu;这是一个结构体对象指针。关于对象与对象指针访问结构体字段的区别是语法,这是规定,掌握即可,没什么原因。至于访问区别LS的都说完了

热点排行