指针中的->符号怎么用啊?我只知道 *这个表示指针 。->是什么?请举例说明怎么用 ,谢谢啦!
2个回答
展开全部
那个是结构体成员运算符
举个例子
struct A{
int i;
int j;
}m;
//定义一个结构体变量m,它含有i和j两个成员
那么,要引用i和j怎么办呢?(例如赋值)
m.i=1;
这样就把m变量中的i成员赋值为1了.
但是这样子不太明显(看着很别扭哈)
于是一个新的运算符诞生了!!!
m->i
这个是和m.i是等价的,都表示m变量中的i成员
准确的说这是在结构体中才会学到的知识
补充:
没人抢,再完善下
这个的优点是直观,在指针中,这个符号的一个应用是链表,可以看下刘汝佳的算法竞赛入门经典中的二叉树或者谭浩强C语言程序设计的结构体的应用的链表
举个例子
struct A{
int i;
int j;
}m;
//定义一个结构体变量m,它含有i和j两个成员
那么,要引用i和j怎么办呢?(例如赋值)
m.i=1;
这样就把m变量中的i成员赋值为1了.
但是这样子不太明显(看着很别扭哈)
于是一个新的运算符诞生了!!!
m->i
这个是和m.i是等价的,都表示m变量中的i成员
准确的说这是在结构体中才会学到的知识
补充:
没人抢,再完善下
这个的优点是直观,在指针中,这个符号的一个应用是链表,可以看下刘汝佳的算法竞赛入门经典中的二叉树或者谭浩强C语言程序设计的结构体的应用的链表
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
成员运算符(?)和指向结构体成员运算符(->)的区别
两者都是用来引用结构体变量的成员,但它们的应用环境是完全不一样,前者是用在一般结构体变量中,而后者是与指向结构体变量的指针连用,例如:有定义
struct student
{
long num;
float score;
};
struct student stud, *ptr=&stud;
则stud.num、stud.score、ptr->num等都是正确的引用方式,但ptr.num、stud->num就是不允许的,其实ptr->num相当于(*ptr).num,只是为了更为直观而专门提供了这->运算符。
最后指出,这两者都具有最高优先级,按自左向右的方向结合。
两者都是用来引用结构体变量的成员,但它们的应用环境是完全不一样,前者是用在一般结构体变量中,而后者是与指向结构体变量的指针连用,例如:有定义
struct student
{
long num;
float score;
};
struct student stud, *ptr=&stud;
则stud.num、stud.score、ptr->num等都是正确的引用方式,但ptr.num、stud->num就是不允许的,其实ptr->num相当于(*ptr).num,只是为了更为直观而专门提供了这->运算符。
最后指出,这两者都具有最高优先级,按自左向右的方向结合。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询