精华内容
下载资源
问答
  • 定义一个结构体变量(包括年、月、日)。计算该日本年中是第几天?注意闰年问题。 输入格式要求:"请输入日期(年,月,日)\n" 输出格式要求:&#...
  • //交换两结构体在结构体数组中的位置 p[j+1]=p[j]; p[j]=temp; } } } //将结果通过列表的方式打印在屏幕上 printf("id sub_1 sub_2 sub_3 sub_4 average order\n"); for(i=0;i;i++) ...
  • 结构体: 一般定义形式:  struct 结构体名{ ------类型名1 成员名1;...可以main函数内部定义,也可以外部定义哪里都可以 //定义一个名为Student的结构体定义类型时系统并没有为它分配内存 s

    结构体:

    一般定义形式:

     struct 结构体名{
    ------类型名1成员名1;
    ------类型名2成员名2;
    ------。。。
    };


    可以在main函数内部定义,也可以在外部定义,哪里都可以

    //定义一个名为Student的结构体,定义类型时系统并没有为它分配内存
    struct Student{
    ------int age;//4字节
    ------char *name;
    ------float height;//4字节
    };//存储的地址是连续的,按定义顺序排
    //定义一个结构体变量,此时系统为stu分配了内存
    struct Student stu={27,”mj“,1.8f};//所有成员占的存储空间==结构体的存储空间
    //一定要在定义的时候初始化:
    stu={27,”mj“,1.8f};//这是错误的
    printf("age=%d\n",stu.age);//打印27.    通过点来调用,类似对象
    stu.age=28//更改了age
    还有一种定义方式:
    struct Student {//Student完全可以省略
    。。。
    } stu={27,”mj“,1.8f};
    结构体内还可以包含别的结构体:
    struct Date{
    -----int year;
    -----int month;
    -----int day;
    }
    struct Strudent{
    -----int age;
    -----struct Date birthday;
    };
    struct Student stu={27,{2009,10,10}};
    结构体数组:
    struct Student stu[2]={{25,”lmj“,1.8f},{27,”mj“,1.8f}};
    结构体形参:
    struct Person{
    -----int age;
    }
    void change(struct Person p){
    -----p.age=9;
    }
    int main(){
    ----struct Person person={27};
    ----change(person);
    ----printf(”%d”,person.age);//结果还是27.
    }
    指向结构体的指针:
    struct Person person={27};
    struct Person *p;
    p=&person;
    //访问结构体成员:
    person.age
    (*p).age;
    p->age;
    
    枚举:
    定义一种枚举类型:
    enum Season(spring,summer,autumn,winter);
    //定义一个枚举变量
    enum Season s=spring;
    //定义枚举类型的同时定义一个枚举变量
    enum Season{ spring,summer,autumn,winter) s=spring;//也可以省略Season。
    
    注意:c语言编译器会将枚举类型作为整型常量处理,称为枚举常量。
    printf(“%d“,s);//打印0
    定义的时候更改值,则后面的元素在其基础上加1
    enum Season{ spring,summer+3,autumn,winter) s=autumn;
    printf(“%d“,s);//打印4
    遍历枚举:
    for(s=spring;s<=winter;s++)
    


    展开全文
  • 功能:从文件读信息到结构体数组中 参数: 参数1:student[] 类型:STUDENT [] 说明:用来存储从文件读到的学生信息 返回值:i 类型:int 说明:表示实际读取到的个数...
  • //我的代码跟这个的区别:没有函数内重新定义变量 然后使用strcpy这些赋值 void order(node *head,int len1) //给货物排序 { node *p; /*用来排序的变量*/ node *q; /*同上*/ p = head->next; while(len1 > ...
  • c语言 之前已经定义了结构 例如 struct Movie{ int date; char name[10]; }; 那么主程序外 struct Movie play(int i){ } 请教一下这个是什么意思 尝试过传入一些东西 但发现似乎无法调用 (里面...
  • 当然在一般的情况下面,我们只需要哪里使用就在哪里包含,所以也并不成为一个问题。但是在一些情况下面,我们尤其需要注意用法。 原则 1.首先,我们需要注意一个最突出的原则,那就是我们使用的一切文件都必须先声.....

    前言

    在使用C语言的过程中,我们会使用头文件来包含很多的声明和变量,但是在这种情况下面。当然在一般的情况下面,我们只需要哪里使用就在哪里包含,所以也并不成为一个问题。但是在一些情况下面,我们尤其需要注意用法。

    原则

    1.首先,我们需要注意一个最突出的原则,那就是我们使用的一切文件都必须先声明,然后才能使用。
    2.其次,为了保证每一个变量都有特殊的名称,我们不能重复定义函数。

    结构

    推荐结构

    //c文件
    /**
    *我们在c文件里面来定义结构体,变量和函数等结构。
    *但是应该注意的是如果我们并不像在H文件里面放入我们的结构但是又想提前使用它,我们可以提前声明
    */
    
    //首先包含库里面的头文件
    #include "stdio.h"
    
    //包含自己定义的头文件
    #include "temp.h"
    
    //这里我们可以先声明,不写定义,为了我们提前调用
    int print_temp_fun(char * temp_arry,int temp_a);
    
    int globel_int =0 ;
    
    void main()
    {
    	char * str= "hello,world";
    	int a = 10;
    	print_temp_fun(str,a );
    }
    //打印一个数组和整形
    int print_temp_fun(char * temp_arry,int temp_a)
    {
    	printf("temp_arry is %s,temp_ais %d\n",temp_arry,temp_a);
    }
    
    //h文件
    #ifndef _TEMP_H_
    #define _TEMP_H_
    
    
    /*
    *注意问题在于:外部声明变量和结构体时必须采用extern标识符,但是函数不需要。
    */
    //声明这个变量为全局变量,那么所有包含这个.h文件的文件都可以使用这个函数
    extern int globel_int;
    //这个声明如果放到.h文件里面,那么所有包含这个.h文件的文件都可以使用这个函数
    int print_temp_fun(char * temp_arry,int temp_a);
    
    #endif
    

    图方便的结构

    假设我们有三个.h 文件.:

    a.h
    b.h
    c.h
    

    我们使用这三个头文件的概率很高,难道我们每一次都需要写include a.h,b.h,c.h吗?
    当然不需要,我们可以这样写:

    #ifndef _CONFIG_H_
    #define _CONFIG_H_
    
    #include "a.h"
    #include "b.h"
    #include "c.h"
    
    #endif
    

    甚至,我们可以把所有的.h文件发给到这个里面,然后直接包含这一个头文件,从而包含所有的头文件。这样做当然方便,但是也会出现一些问题。

    1. 可能会导致所有文件包含的文件过多,编译慢,代码太大。
    2. 可能会导致在定义之前就使用了:如,在编译过程中出现不完整的类型。

    类型不完整的原因和解决方法:

    我们在编译时,可能会出现这个状况,下面来讲解一下原因:

    定义了不定长数组

    int a[];
    

    解决方法:在实际使用过程中,我们尽量不要定义不定长数组,不定长数组是一个很危险的东西,我们尽量采用malloc或者直接用指针都是更安全的选择。

    结构体的定义放在了头文件里面

    首先我要说明,结构体放在头文件里面并不会导致问题的出现,但是我们要注意定义结构体的头文件,应该被先包括进来。

    //文件 a.h
    typedef struct temp
    {
    	int a ;
    }temp_a;
    
    
    //文件b.h
    temp_a temp_st;
    

    错误的情况:

    //文件b.c
    #include "b.h"
    #include "a.h"
    

    注意在这种情况下,编译器会直接把b.h和a.h两个文件先后复制到b.c里面,这种情况下会导致的问题就是结构体的定义放在了使用之后。这里我们要注意先后顺序。

    解决方法1(当采用使用时包含特定头文件时):

    #include "a.h"//定义结构体的文件
    #include "b.h"//使用结构体的文件
    

    我们要时刻注意先定义后使用的操作流程。

    解决方法2(当一个头文件包含所有头文件时):

    在我们编写大型工程的情况时,各种头文件的包含可能会存在比较纠结的时候,在这种情况下的话我们将所有的.h文件都包含到一个头文件里面去。但是这种时候,又会出现原来的问题,结构体的定义可能会找不到。
    这时候我们可以选择将结构体的定义放到包含头文件之前的情况下。
    例如

    #ifndef _PUBLIC_H_
    #define _PUBLIC_H_
    typedef struct temp
    {
    	int a ;
    }temp_a;
    
    #include "a.h"
    #include "b.h"
    
    #endif
    

    我们可以直观的感受到,包含这个头文件的文件,在a.h,和b.h里面也都是可以直接定义该结构体的。

    展开全文
  • 代码有问题但是不知道错误在哪里,现在运行的时候输入成绩没问题,输出就是一堆乱码 ; margin-right:0">#include<stdio.h> ; margin-right:0">#include<string.h> //比较字符串头文件// ...
  • a) 定义变量,其中保存学生信息的数据文件直接源代码中初始化; b) 读取学生信息,如果失败,打印失败信息并退出程序; c) 统计学生信息; d) 输出统计信息。 e) 释放内存。 ``` #include #include #include ...
  • 做文件输入输出的时候,用的是结构体链表,放入的...当我运行程序时,(保存的时候 只有两个 节点,并且尾next为空),保存两个节点,第二次读取的时候却有三个节点,不知道问题出哪里。求大神帮忙看看!!!!!
  • struct Lib/*定义图书信息的结构体变量*/ { char name[10];/*图书名*/ char writter[10];/*作者名*/ char number[10];/*分类号*/ char pub[10];/*出版社*/ char time[10];/*出版时间*/ char price[10];/*价格*...
  • C语言写单链表,插入数据的时候第一个数不管输入的是多少都是0。大家帮忙看下哪里错了呀?谢谢了。 //结点结构定义 struct node { int data; struct node *next; }; //单链表的基本结构体 typedef struct list {...
  • 共用体与typedef用法

    2019-12-24 21:21:01
    其与结构体的区别在哪里;举例说明。 2.共用体的定义,共用体类型成员的赋值,内存所占用的存储空间的位置关系。 typedef 3.typedef的使用方法,为什么会产生这个关键字,其作用是什么。 4.在C语言中,常用typedef...

    lv2 Day4 03 共用体与typedef用法

    共用体
    1.在C语言中,共用体的概念;其与结构体的区别在哪里;举例说明。
    2.共用体的定义,共用体类型成员的赋值,内存所占用的存储空间的位置关系。

    typedef
    3.typedef的使用方法,为什么会产生这个关键字,其作用是什么。
    4.在C语言中,常用typedef定义结构体类型。举个例。

    (1)在C语言中,不同数据类型的数据可以使用相同的存储区域,这种数据构造类型称为共用体,简称共用,又称联合体 union。
    (2)其与结构体的区别在于,共用体的成员在内存中使用共同的存储空间,如果成员的数据类型不同,则按占用内存最大的成员的数据类型分配。而结构体总是根据按各成员的数据长度之和占用内存空间。
    (3)

    union gy{
             int i;
             char c;
             float f;
           }

    这里定义了一个共用体类型union gy,它含有3个不同数据类型的成员,但是 sizeof(union gy) 结果是 sizeof(int) 的值。
    2.
    (1)共用体的定义方式与结构体类似,共有3种。
    (2)考虑到共用体的成员是使用同一块内存空间,故其成员的赋值必定存在一个相互覆盖的问题。因此,在共用体类型变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后,原有的成员就失去作用。

    #include <stdio.h>
    union gy{
    char a;
    short b;
    int c;
    }v2;
    int main()
    {
    union gy v1;
    char *p;
    p=(char *)&v1;//这里不能忘了强制转换
    int i;
    
    printf("%d %d %d\n",sizeof(char),sizeof(short),sizeof(int));
    printf("%d \n",sizeof(union gy));
    
    v1.a='A';
    v1.b=20;
    v1.c=0x12345678;
    printf("%#x %c\n",v1.a,v1.a);
    printf("%p %p %p\n",&v1.a,&v1.b,&v1.c);
    
    for(i=0;i<sizeof(union gy);i++)
    {
      printf("%#x\n",*P);
      p++;
     }
    return 0;
    }
    
    

    输出结果

    1 2 4
    4
    0x78 x
    0060FEF4 0060FEF4 0060FEF4
    0x78
    0x56
    0x34
    0x12
    

    3
    有时候我们不经意间会定义很多相同结构体类型的变量,或者指针。为了使用方便,在C语言中,允许使用关键字typedef定义新的数据类型。
    其语法如下:typedef <已有数据类型> <新数据类型>;
    4.
    例如

    typedef struct node{
    int data;
    struct node * next;
    }listnode,*linklist;
    
    //这两种写法等价
    
    struct node{
    int data;
    struct node * next;
    };
    typedef struct node listnode;
    typedef struct node * linklist;
    
    #include <stdio.h>
    
    typedef struct node{
    int data;
    struct node * next;
    }listnode,*linklist;
    int main()
    {
     //struct node n1,n2,n3,*p;
     //listnode n1,n2,n3,*p;
     listnode n1,n2,n3;
     linklist p;
     
     n1.data=10;
     n1.next=NULL;
     
     n2.data=20;
     n2.next=NULL;
     
     n3.data=40;
     n3.next=NULL;
     
     p=&n1;
     
    return 0;
    }
    
    展开全文
  • 这个作业要求在哪里 2019春第十周作业 我在这个课程的目标是 结构的部分内容进行强化和作业题的完成 这个作业在那个具体方面帮助我实现目标 掌握了结构体定义和简单应用,并且利用结构体来完成一些变量复杂的...
    A Q
    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 2019春第十周作业
    我在这个课程的目标是 结构的部分内容进行强化和作业题的完成
    这个作业在那个具体方面帮助我实现目标 掌握了结构体的定义和简单应用,并且利用结构体来完成一些变量复杂的编程题
    参考文献 C语言chap9

    一、本周完成的作业

    题目1.刘未鹏的博客:怎样花两年时间面试一个人

    http://mindhacks.cn/2011/11/04/how-to-interview-a-person-for-two-years/
    请回答以下两个问题:

    1.这篇博客下面的评论中,请列出你最感到有共鸣的三条(不限于三条)

    王博做个吃货 | October 23, 2014 at 12:28 am Reply

    .从你出生,接触互联网开始,你的每一个进步都可以由你的博客,github,记录.分享进步和经验也是积累财富.嗯,每个人都有这样的机会了.

    我觉得很多大学生并不是生来就接触计算机和互联网的,但所幸,在这个互联网和计算机蓬勃发站的时代,每个人都有这机会利用互联网学到更新换代的知识,互联网也可以记录自己地 每一个进步。

    夕_久 | January 4, 2016 at 7:12 pm | Reply

    ​ 好文章!从企业的角度是如何筛选人,从个人的角度即是如何提升自己的核心竞争力!

    ​ 这篇文章的确是在这两个角度上说明了一些东西,同时还他分析了企业在哥哥因素上的考虑去招聘人员:成本和消耗。同时也给大学生提出了 一些可行性建议 供其选择。

    颜晋南 | October 18, 2015 at 10:56 am | Reply

    ​ 读好书是如此的重要,因为好书往往带领你去到更好的书,更大的世界。
    我想加上一句,有些公认的好书你读起来没有感触,那么你是提前读了。过几年在回头看看。

    ​ 我也有同感,一本好书就想一瓶酒,不经需要时间发酵,还需要人们耐心品尝。阅读一本好书,我们总会汲取许许多多的知识丰富自己的头脑,然后将这些知识在具现化出来。

    2.读了这篇博客,你有哪三点具体的收获(不限于三点)。

    1.我从这篇文章上了解到了企业在招聘员工时会考虑的因素,我就会想办法思考和满足将企业的所需。

    2.我了解到当打大学生在面对企业招聘时,学校所教知识,总是对于企业来说时不全面的,或根本派不上用场。未毕业大学生应把握朱业余时间去学习一些额外的·企业所需要的知识。

    3.楼主在问掌中给出了问题的解决建议,我觉得非常有道理和一定的可行性。我觉得书单计划还是当西既方便又有效果的一种方法把。至于giehub等待经验积累上来也可以去挑战下。

    题目2.如何有效地记忆与学习?

    http://mindhacks.cn/2009/03/28/effective-learning-and-memorization/
    请回答以下两个问题:

    1.这篇博客中提到的哪些方法你已经在使用,举例说明使用之后的实际效果。

    1) 养成习惯,经常主动回顾一段时间学到的东西.

    这个方法在我的高中生干活中使用的可是频率超高的好吧!使用这个方法能够潜移默化的提高自己的记忆力,高中北宋就是这么做的。

    2) 创造回忆的机会

    这个方法也是高中学习必备呀!通常都是与上一条一起使用的,在高中,经常需要互相讨论,整理笔记和书写。在高中,很多地方都要采用这个方法,记单词、回顾知识都需要,事实上也能达到高效的记忆。

    2.这篇博客中提到的哪些方法在你看来不错,但自己还没实践过,很想试一试。

    3) 设身处地地“虚拟经历”别人经历过的事情

    4) 抽象和推广

    5) 联系/比较自身的经历

    以上三种方法都是我人为应当非常有效的,实际上我确没能灵活应用。事实上我没有实践过这些方法。因为我不知道在什么情况下该使用这三种方法,并且不知道该如何下手去实施这些方法。

    题目3.如何提问?

    https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md
    请回答以下两个问题:

    1.开学已经要求大家阅读过此文,对照一段时间的学习,请举例说明你之前所采用的提问方式和得到的反馈。

    我之前是采用先自己思考,不懂之后查阅书籍,还是不懂,在相关网站上寻找类似题型,然后解读代码和思路,然后自己编译,当自己出现问题之后,在思考一阵,还是不懂,在群里提问,提问时尽可能的表达出自己想要结果与实际结果的差距。一直以来都是采用这样的提问方式。的道的好处自不必说,我自己思考了,也学会了别人的思路,还能找道最后自己哪里出错了,一举三得。

    2.请按照文章的要求,精确而言之有物的描述到目前为止最困扰你的一个问题。

    在很早之前一个整除光棍的题目中,我编写出了正确的代码,在程序上运行也正确,符合样例输入输出,但是提交pta后答案错误,不存在格式错误和编译错误,在程序上调试,发现换一组数字输出结果便是一串乱码,这是为何?

    自我总结

    在这个五一假期中,虽然没有编程作业,但是这个提问作业的几篇文章也让我受益匪浅,三篇文章分别在未来就业,现在学习两个时段的问题进行了解读,也给出了一些实质而有效的建议,其中我觉得里面的书单计划,没实践过的记忆方法,和提问的方式的内容都是当下时段最有用的建议。我了解了,学到了,并正在或将施行下去。

    学习进度统计

    1585170-20190530110535134-547115495.png

    转载于:https://www.cnblogs.com/LfanWyuXooo/p/10803405.html

    展开全文
  • 第9周作业

    2019-10-04 00:22:36
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/MS/homework/3129 我在这个课程的目标是 了解并熟练掌握结构体的使用方法,结构变量的定义和初始化。 这个作业在那个具体方面帮助我实现目标 ...
  • 2019春季第九周作业

    2019-04-25 17:28:00
    这个作业要求在哪里 第九周作业 我在这个课程的目标是 了解并熟练掌握结构体的使用方法 这个作业在哪个具体方面帮助我实现目标 这次的pta上的作业都有用结构体 参考文献 C语言程序设计 基础作业 按等级统计...
  • 第九周作业

    2019-04-26 11:02:00
    这个作业要求在哪里 第九周作业 我在这个课程的目标是 了解并熟练掌握结构体的使用方法 这个作业在哪个具体方面帮助我实现目标 熟练结构体的使用 参考文献 C语言程序设计 6-1 按等级统计学生成绩 (20 ...
  • 第九周总结

    2019-04-26 15:30:00
    这个作业要求在哪里 作业要求 我在这个课程的目标是 学会结构体基本操作 这个作业在那个具体方面帮助我实现目标 作业帮我实现了这个目标 参考文献 c语言程序书 作业一 本题要求实现一个根据学生成绩设置其...
  • 2019春第九周作业

    2019-04-24 18:18:00
    这个作业要求在哪里 2019年春季学期第九周作业 我在这个课程的目标是 我希望能够通过学习C语言的知识,编写程序 这个作业在哪个具体方面帮助我实现目标 这个作业让我知道了根据实际情况合理定义结构,能够使用...
  • 第八周作业

    2019-04-19 17:12:00
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class1-2018/homework/2825 我在这个课程的目标是 学习字符串的几种函数以及内存动态分配以及结构体的预习 这个作业具体在那个...
  • 第十周作业

    2019-04-30 12:02:00
    这个作业要求在哪里 (https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/3162) 我在这个课程的目标是 强化掌握结构体的使用方法,结构变量的定义和初始化。 这个作业在哪个...
  • 这个作业要求在哪里 要求 我在这个课程的目标是 学习更多的知识 这个作业在那个具体方面帮助我实现目标 结构体 参考文献 书本 函数题 按等级统计学生成绩 本题要求实现一个根据学生成绩设置其等级,并统计...
  • 面试题26:C语言结构体和C++的有什么区别 面试题27:C中的malloc和C++中的new有什么区别 面试题28:C++的引用和C语言的指针有什么区别 第4章 预处理、保留字 4.1 预处理 面试题1:简述#ifdef、#else、#endif和#...
  • 51单片机自学笔记

    2016-07-27 22:24:19
    第5章 引发事端的按键56, 5.1 按键控制LED小灯怎么失灵了57, 5.1.1 硬件电路设计及原理分析57, 5.1.2 软件设计思想及代码分析57, 5.1.3 究竟错在哪里59, 5.2 对付按键抖动60, 5.2.1 公园的一个入口CALL与多个出口...
  •  3.8.1 结构体定义  3.8.2 结构体的使用  3.9 指向内存位置的指针  3.9.1 指针就是表示内存地址的数据类型  3.9.2 指针变量的定义  3.9.3 指针的赋值和使用  第4章 将语句编织成程序  4.1 用运算符对数据...

空空如也

空空如也

1 2
收藏数 33
精华内容 13
关键字:

c语言结构体在哪里定义

c语言 订阅