c 用指针操作结构体数组

重点:指针自加,指向下一个结构体数组单元

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 #define max 10
 5 #define min 3
 6
 7 typedef struct Stu{
 8     char    * name;
 9     int     age;
10     int   score;
11 } Stu;
12
13 //输入
14 void input(Stu *);
15 void output(Stu *);
16 void clean(Stu *);
17
18 void main(void)
19 {
20   Stu student[min];
21   input(student);  //相当于传入&student[0]
22
23   output(student);
24   clean(student);
25 }
26
27 void input(Stu * student)
28 {
29    char temp[20];
30    int i=0;
31    puts("please input name");
32    while(i<min & gets(temp) != NULL & temp[0] != ‘\0‘ )
33    {
34           student->name = (char *) malloc(strlen(temp)+1);
35           strcpy(student->name,temp);
36
37           puts("age ?");
38           scanf("%d",&student->age);
39           puts("score ?");
40           scanf("%d",&student->score);
41
42           i++;
43           student++;  //指针自加,指向下一个数组单元
44
45           while(getchar() != ‘\n‘)
46             continue;
47
48          if(i<min)
49             puts("next name");
50    }
51
52 }
53
54 void output(Stu * student)
55 {
56    int i=0;
57    while(i<min){
58        printf("%s---%d---%d\n",student->name,student->age,student->score);
59        i++;
60        student++;
61    }
62
63 }
64
65 void clean(Stu * student)
66 {
67    int i=0;
68    while(i<min){
69         free(student->name);
70        i++;
71        student++;
72    }
73 }
时间: 2024-11-08 22:00:00

c 用指针操作结构体数组的相关文章

一维数组,二维数组,三维数组,数组与指针,结构体数组,通过改变指针类型改变访问数组的方式

 打印数组中的每个元素,打印每个元素的地址: #include <stdio.h> #include <stdlib.h> void main(void) { int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (int *p = a; p < a + 10;p++)  //指针类型决定4个字节 { printf("\n%p,%d", p, *p); } getchar(); } 指针数组 #inclu

Visual Studio 调试中将结构体指针转换为结构体数组查看

Visual Studio 调试中将结构体指针转换为结构体数组查看 1. 首先,我们在调试过程中,发现一个指针,无法显示其数组形式,很难受... 2. 将其添加到"监视"窗口 3. 修改监视的值,后面加上查看的索引个数 4. 其转化为数组 原文地址:https://www.cnblogs.com/onetrainee/p/12232646.html

结构体指针数组和结构体数组指针的区别

对于初学者的我来说,面对又是数组又是结构体还有指针,一下子就蒙了,在网上查找资料也没有相应的介绍,经过我的测试终于明白了其中的猫腻:结构体数组指针 *[]struct:结构体数组指针的指针是数组的指针,即表示数组的地址,数组里面存放的是结构体类型结构体指针数组 []*struct:即指针表示结构体的地址,数组里面存放的是结构体的指针有什么解释不对的地方请指正 代码测试:package mainimport ( "fmt") type XCDataStu struct { Id int

绝对好文C#调用C++DLL传递结构体数组的终极解决方案

C#调用C++DLL传递结构体数组的终极解决方案 时间 2013-09-17 18:40:56 CSDN博客相似文章 (0) 原文  http://blog.csdn.net/xxdddail/article/details/11781003 在项目开发时,要调用C++封装的DLL,普通的类型C#上一般都对应,只要用DllImport传入从DLL中引入函数就可以了.但是当传递的是结构体.结构体数组或者结构体指针的时候,就会发现C#上没有类型可以对应.这时怎么办,第一反应是C#也定义结构体,然后当

编程题:指针变量指向结构体数组。

编程题:指针变量指向结构体数组. #include<stdio.h> void main() { struct person {char name[20]; char sex; int age; float height; }per[3]={{"Li Ping",'M',20,175},{"Wang Ling",'F',19,162.5}, {"Zhao Hui",'M',20,178}}; struct person *p; for

C语言--- 高级指针2(结构体指针,数组作为函数参数)

一.结构体指针 1. 什么是结构体指针?指向结构体变量的指针     结构体:     typedef  struct stu{                          char name[20];                          char sex;                          int age;                    }Student;     Student stu1 = {"zhangsan",'m',23};  

【C语言】用结构体数组指针完成:有三个学生信息,存放在结构体数组中,要求输出全部信息

//用结构体数组指针完成:有三个学生信息,存放在结构体数组中,要求输出全部信息 #include <stdio.h> struct Stu { int num; char name[20]; char sex; int age; }; int main() { struct Stu student[3]={{317,"han",'m',20},{318,"hun",'w',22},{311,"dan",'w',18}}; struct

黑马程序员---C基础12【结构体数组】【结构体指针】【结构体嵌套】【作为函数参数】【枚举类型】

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- [结构体数组] 1.结构体数组: 结构体数组的每一个元素都是具有相同结构类型的下标结构变量:(可以表示一个群体,一个班学生档案) 2.结构数组定义: 定义格式: struct    结构名{ 成员列表: }数组名[数组长度]: 1 1)定义结构体的同时定义数组: 2 3 struct stu{ 4 5 int num; 6 7 char name[10]; 8 9 int age; 10 11

指针和结构体知识学习

这一周主要学习了C语言中的最灵活的技巧 --指针.指针也是一个变量,它有自己的地址也有指向的地址,一般来说我们更关注的是指针指向的地址.指针的指向可以是整数.浮点数.字符.数组,同样的也可以是一个函数. 指针的基本操作有赋值.求值.取指针地址.将一个整数指针加给指针,增加指针的值.减小指针的值和求差值.如下程序所示: 1 /*ptr_ops.c - 指针操作*/ 2 #include <stdio.h> 3 int main() 4 { 5 int urn[5] = {100, 200, 30