C语言中,结构体里变量的定义
在结构体里有的变量是被直接定义例如inta;有的是被定义成指针例如int*b;请教高手这两种定义一般用在什么情况下谢谢...
在结构体里 有的变量是被直接定义例如 int a; 有的是被定义成指针 例如 int *b ;
请教高手 这两种定义一般用在什么情况下 谢谢 展开
请教高手 这两种定义一般用在什么情况下 谢谢 展开
18个回答
展开全部
要知道这个问题很重的一个问题就是,指针的作用是什么,知道这个了你就知道为什么要定义指针了。
很简单的道理,如果你需要的是一个独立(或者说是一个孤立的值)的时候,你就不需要定义成指针。而当你的结构中包含了一系列的有序的数据或者是一系列数据对的时候就将其定义成一个指针。
原因在于,定义成一个指针的话方便你往下读取后面的数据,通过指针偏移就可以实现,或者你的数据分成了指针部分和数据部分的时候也需要定义成一个指针,对于这个 你学过数据结构的话就很好理解了。
祝你学习进步!
很简单的道理,如果你需要的是一个独立(或者说是一个孤立的值)的时候,你就不需要定义成指针。而当你的结构中包含了一系列的有序的数据或者是一系列数据对的时候就将其定义成一个指针。
原因在于,定义成一个指针的话方便你往下读取后面的数据,通过指针偏移就可以实现,或者你的数据分成了指针部分和数据部分的时候也需要定义成一个指针,对于这个 你学过数据结构的话就很好理解了。
祝你学习进步!
展开全部
有时候需要将不同类型的数据组合成一个有机的整体,这些组合在一个整体中的数据是互相联系的,就用到结构体。
每个成员名前的类型标识符可以为已经定义了的任意类型,当然可以是结构体类型标识符,即结构体成员也可以是另一个结构体变量。
struct date
{
int year;
int month;
int day;
};
struct student
{ int num;
char name[20];
char sex;
struct date birthday;
char addr[30];
};
此处只是构造出一个新的类型,并没有定义该类型的变量,因此在内存中并没有开辟任何存储空间;
成员也可以是指向本结构体类型的指针变量;
struct student
{ int num;
char name[20];
float score;
struct student *next;
};
每个成员名前的类型标识符可以为已经定义了的任意类型,当然可以是结构体类型标识符,即结构体成员也可以是另一个结构体变量。
struct date
{
int year;
int month;
int day;
};
struct student
{ int num;
char name[20];
char sex;
struct date birthday;
char addr[30];
};
此处只是构造出一个新的类型,并没有定义该类型的变量,因此在内存中并没有开辟任何存储空间;
成员也可以是指向本结构体类型的指针变量;
struct student
{ int num;
char name[20];
float score;
struct student *next;
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
bnmyni11 说得很好了,你要问具体应用的话,参考一下:
从你举的例子,估计你是遇到线性表了
在线性表里,一个用来确定线性表的大小int a; ----- int size;
一个指着表头: int *b -----int *elem;
可以有 int n 或 int *p 表示当前位置;
这些对初学者来说,有个大概的了解就行了。
从你举的例子,估计你是遇到线性表了
在线性表里,一个用来确定线性表的大小int a; ----- int size;
一个指着表头: int *b -----int *elem;
可以有 int n 或 int *p 表示当前位置;
这些对初学者来说,有个大概的了解就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接定义的变量就是它本身。
指针变量多用于操作其它数据对象。
指针变量多用于操作其它数据对象。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
***
int a;
int *b;
***
变量a是用来存放实际数据的,例如你可以对变量a赋值(a=5 or a=o5 and so on)
而指针变量b是用来储存整型的地址的,你可以将b用来取得整型变量的地址,或者对整型变量地址的引用,你可以这么操作b(b=&a)
总之a好比是可以住人的房间,而b是来储存房间号的
int a;
int *b;
***
变量a是用来存放实际数据的,例如你可以对变量a赋值(a=5 or a=o5 and so on)
而指针变量b是用来储存整型的地址的,你可以将b用来取得整型变量的地址,或者对整型变量地址的引用,你可以这么操作b(b=&a)
总之a好比是可以住人的房间,而b是来储存房间号的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按你自己的需要,定义
定义为int 为整型变量 可以赋整数 如1,522,336等
定义为int * 为指向整型变量的指针,可以赋int型的地址 如 int A ;int *a=&A;
定义为int 为整型变量 可以赋整数 如1,522,336等
定义为int * 为指向整型变量的指针,可以赋int型的地址 如 int A ;int *a=&A;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询