C/C++ 结构体 指针 简单输入输出

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3
 4 struct student{
 5     int num;
 6     char str[20];
 7     double dec;
 8 };
 9
10 int main(){
11     int n;
12     struct student *stu;
13
14     scanf("%d", &n);
15     stu = (struct student *)malloc(n * sizeof(struct student));
16
17     for(int i = 0; i < n; ++i){
18         scanf("%d%s%lf", &stu[i].num, stu[i].str, &stu[i].dec);
19     }
20
21     printf("%d\n", n);
22     for(int i = 0; i < n; ++i){
23         printf("%d %s %lf\n", stu[i].num, stu[i].str, stu[i].dec);
24     }
25
26     free(stu);
27     return 0;
28 }
29 /*
30 3
31 20 字符串0 20.02
32 21 字符串1 21.12
33 22 字符串2 22.22
34 */
时间: 2024-08-01 08:56:42

C/C++ 结构体 指针 简单输入输出的相关文章

C/C++ 结构体 数组 简单输入输出

1 #include <stdio.h> 2 #include <stdlib.h> 3 4 struct student{ 5 int num; 6 char str[20]; 7 double dec; 8 }; 9 10 11 int main(){ 12 13 int n; 14 struct student stu[10]; 15 16 scanf("%d", &n); 17 for(int i = 0; i < n; ++i){ 18

c语言中的结构体指针类型的cast

1.我们在c语言中会经常碰到强制类型转换. 在这,我介绍一种结构pointer类型转换,但是有前提(有点类似于c++中的继承中的子父对象的cast). 简单的介绍一下: 首先我们要知道一个结构的指针,并且 在这个结构体中,第一个结构成员必须也是一个结构体(最好是结构体类型). 那么我们可以这个结构体指针转换为指向这个结构体中第一个成员结构体的指针. 直接看代码: ************************************ /* struct transform for struct

2015.9.10关于链表中结构体指针的错误

昨天用结构体指针写了一个双链表的程序,编译环境是VC6.0,之前写单链表的时候也是用的这个编译器,但是昨天出了一个让我很费解的问题,代码如下: /********************************************************** * C语言实现双链表 *文件名:list.c *作者:Mr Wan *编写时间:2015.9.9 *功能:实现双链表的简单操作 *版本:1.0 * ********************************************

结构体指针和结构体成员指针

在添加sqlite3的加解密功能函数时,由于网上资料针对的版本是旧版sqlite3源码,现在新版上做修改遇到了一个宏,该宏是旧版上的,它作用是由结构体成员指针pData找到它所属的结构体指针.下面转的文章详解了这种机制. 1.通过结构体成员指针寻找其所属结构体指针 转自http://blog.csdn.net/mycwq/article/details/9327743 宏CONTAINING_RECORD,可以直接根据结构体成员指针找到结构体指针. 我们看一下它的定义: 1 #define CO

关于结构体指针的使用

关于结构体指针的使用 单片机在写代码的时候很多情况下会遇到使用数据和变量差不多的情况,每次都会定义一些类似的变量.我碰到的比如有建立很多个任务,这时候在定义的时候每个任务都有很多类似的变量,taskliving,taskprocesing,flag,logen等等;还有就是对步进电机和直流电机也是有初速度,末速度,加速度,运行步数,输出电压,运行时间等.在开始使用的时候每个都用单个的变量去表示,但随着程序复制程度的增加这个就不那么适用了,会有很多变量要去复制,然后他们的公共函数不能通用,会写很多

结构体指针

结构体与指针 1.结构体指针的数值为某个结构体的内存空间的地址,从而指针指向某个结构体. 2.结构体指针的初始值为空(0),不指向任何结构体. 3.malloc操作:创建一个新的内存空间(从内存中选择一个内存空间存储结构体),p指向这个结构体,p的值为这个结构体的内存空间的地址. 4.结构体指针的赋值:一个结构体指针的数值等于另外一个结构体指针的数值,从而两个结构体指针指向相同的结构体.当对某个结构体进行访问时,选择的结构体指针只要满足该结构体指针指向这个结构体即可,即可以有很多种选择. 5.当

C语言 结构体指针赋值 incompatible types when assigning to type &#39;char[20]&#39; from type &#39;char *&#39;

strcpy(pstudent->name, "guo zhao wei "); 为什么错误,该怎么写,(红色行) 追问 为什么不能直接赋值啊, 追答 用char nnnn[20]定义的,用strcpy 用char *ppp定义的,用=来赋值 C语言 结构体指针赋值 incompatible types when assigning to type 'char[20]' from type 'char *'

(C)struct结构体指针

结构体指针 指针结构与指针的关系亦有两重:其一是在定义结构时,将指针作为结构中的一个成员:其二是指向结构的指针(称为结构指针). 前者同一般的结构成员一样可直接进行访问,后者是本节讨论的重点. 结构指针说明的一般形式是: struct (结构类型名称) * (结构指针变量名);例如:struct date * pdate, today;说明了两个变量,一个是指向结构date的结构指针pdate,today是一个date结构变量. 语句: struct date{ int year; int mo

c语言中结构体指针

1.指向结构体的指针变量: C 语言中->是一个整体,它是用于指向结构体,假设我们在程序中定义了一个结构体,然后声明一个指针变量指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到指向运算符"->". 举例说明: struct SunLL { int a; int b; int c; }; struct SunLL  * p;               //定义结构体指针 struct SunLL A = {1,2,3};    //定义一个SunLL类型的变量A