首页 > 编程知识 正文

指针c语言,结构体赋值给另一个结构体

时间:2023-05-04 14:22:00 阅读:174441 作者:2735

《C语言给结构体指针赋值》由会员共享,可在线阅读。 更多相关《C语言给结构体指针赋值(6页珍藏版)》请在人人文库网上搜索。

1 .指向结构的指针在c语言中,可以创建指向几乎任何类型的指针,包括用户自定义的类型。 创建结构指针是非常常见的。 以下是一个例子。 r是指向结构的指针。 请注意,r是指针,因此它和其他指针一样占用4字节的内存。 malloc语句从堆中分配45字节的内存。 *r是结构体,与其他Rec类型的结构体相同。 以下代码说明了此指针变量的典型用法。 可以像处理普通结构变量一样处理*r,但如果遇到C的操作符优先级问题,请注意。 *如果删除r的两个括号,则无法编译代码,因为"."操作符的优先级高于" * "操作符。 在使用结构指针时不断输入括号的是ylm,为此在c语言中为了达成相同目的引入了简单的符号。

2, r-这个写法和(r ) .完全等效,但是省略了两个字。 指向数组的指针还可以创建指向数组的指针,如下所示: 或者,要创建指向整数数组的指针,您可能需要创建一个常规整数指针。 调用malloc分配适当的数组空间,并将指针指向数组的第一个元素。 对数组元素的访问可以通过普通数组下标和指针进行运算。 c将两种方法视为等同。 指向数组的指针这种技术特别适用于字符串。 可以为特定大小的字符串分配适当的内存。 指针数组可以通过声明指针数组来节省大量内存,也可以解决内存消耗过多的问题。 下面的代码声明一个由10个结构指针组成的数组,而不是结构数组。 否则,此结构数组将被占用。

3,243 * 10=使用2430字节的内存。 在使用malloc语句为记录实际分配内存空间之前,可以使用指针数组最大限度地减少内存消耗。 作为该过程的演示,以下代码为一条记录分配空间,保存某个值,然后释放空间。 包含指针的结构可以包含指针。 typedef structchar name21; char city21; char phone21; char *comment; Addr; Addr s; char comm100; gets(s.name,20 ); gets(s.city,20 ); gets(s.Phone,20 ); gets(comm,100 ); s.comment=(char*。

4、) malloc(sizeof ) char strlen (comm ) 1; strcpy(s.comment,comm ); typedef structchar s181; char s281; char s381; Rec; Rec *a10; a0=(rec* ) malloc ) sizeof ) rec; strcpy(A0-S1,hello ); free(A0; int *p; int i; p=(int* ) malloc ) sizeof ) int10; for(I=0; iname,Leigh; srcpy(*r ).name,Leigh ); strcpy(*r ).city,Raleigh ); strcpy (。

5、*r ).state,NC ); printf(%sn,(*r ).city ); free(r ); typedef structchar name21; char city21; char state3; Rec; typedef Rec *RecPointer; RecPointer r; r=(recpointer ) malloc ) sizeof ) rec; 当结构指针变量的概念指针变量指向结构变量时,将其称为结构指针变量。 结构指针变量定义结构指针变量定义的一般格式为:结构类型名称*结构指针变量名称; 例如,有一个名为#define N 10 /* 10课程*的结构类型定义。

6、/#define MAXLEN 20 /*学生姓名最大长度*/struct studentchar nameMAXLEN; int scoreN; 对于,struct student *pstu用于定义指向student的结构指针变量pstu; 结构指针变量的引用结构指针变量必须在使用之前赋值。 代入时,将结构变量的起始地址指定给此指针变量。 例如,struct student s,*pstu; pstu=s; 定义结构指针变量后,访问每个成员的典型格式为(结构指针变量) .成员名称或(结构指针变量-成员名称示例) ) *pstu ).name。

7、或pstu-name【例7-1】结构指针变量的顶替和使用方法。 源程序/*/*程序名称: samp7_1 c */*作者: dyq */*创建时间: 2004年7月16日*/*程序功能:结构指针变量具体用法*/# include state 5举例说明define MAXLEN 20 /*学生姓名最大长度*/*/*函数名称: main */*函数功能:主函数*/*条目参数:无*/*返回值:无*/*/void main ()

8、输入屏幕; s1=Li ming,80,75,90,78,89,*p; int i; /*结构变量访问其成员*/printf ()名称为%sn,s1.name; printf (成绩是); for(I=0; 名称; printf (成绩是); for(I=0; iscore i; printf(n; 结构的指针分配示例struct studentchar name20; voidmain(structstudent*ST99; ST5=(structstudent* ) calloc(1,sizeof ) structstudent ); sprintf(ST5-name,xyz。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。