#include <stdio.h>

#include <string.h>

struct student

{

int age;

char sex;

char name[100];

};

void input(struct student *);

void output(struct student ss);

int main(void)

{

struct student st;

input(&st);

output(st);

return 0;

}

void output(struct student ss)

{

printf("%d %c %s\n",ss.age, ss.sex, ss.name);

}

void input(struct student *pstu)

{

(*pstu).age=10;

strcpy(pstu->name, "张三");

pstu->sex='M';

}

input(&st); 对结构体变量输入,必须发送st的地址

output(st); 对结构体变量输出,可以发送st的地址也可以直接发送st的内容

这个程序的功能是通过函数完成对结构体的输入输出

#include <stdio.h>

#include <string.h>

struct student

{

int age;

char sex;

char name[100];

};

void input(struct student *);

void output(struct student *);

int main(void)

{

struct student st;

printf("%d\n",sizeof(st));

input(&st);

output(&st);

return 0;

}

void output(struct student *pst)

{

printf("%d %c %s\n",pst->age, pst->sex, pst->name);

}

void input(struct student *pstu)

{

(*pstu).age=10;

strcpy(pstu->name, "张三");

pstu->sex='M';

}

上面这个程序体现了指针的优点,printf("%d\n",sizeof(st)); st占用了108个字节,output(&st); &st是个地址变量只占8个字节,如果是发送

内容像前面一个程序写成oupt(st); 则此时st占用了108个字节,这样就浪费了内存空间,也使传输速度变慢,因为output(st); 中的st传递

到void output(struct student ss)需要传108个字节,而改为指针的话只需8个字节

#include<stdio.h>

enum weekday

{

monday, tuesday, wednesday, thursday, friday, saturday, sunday

};

int main(void)

{

enum weekday day=monday;

printf("%d\n",day);

return 0;

}

这是一个枚举例子,输出的是0,如果是tuesday则是1,依次类推enum weekday 是一个数据类型,前面的数据结构体struct student也可以

说是一个数据类型

学习c语言的第14天的更多相关文章

  1. 新学习的语言Groovy

    什么是 Groovy? Groovy 是 JVM 的一个替代语言 —替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同.在编写新应用 ...

  2. 学习swift语言的快速入门教程推荐

    随着苹果产品越来越火爆,苹果新推出的swift必定将在很大程度上代替oc语言.学好swift语言,对于IOS工程师来讲,已经是一门必备技能. 有一些比较好的英文版教程,值得学习. 1. Swift T ...

  3. 学习c++语言应该牢记的50条准则,同样学习其他语言也一样

    1.把C++当成一门新的语言学习(和C没啥关系!真的.): 2.看<Thinking In C++>,不要看<C++变成死相>: 3.看<The C++ Programm ...

  4. 学习go语言编程系列之定义变量

    package main import ( "fmt" "math") func main() { // 1. 定义变量名age,不初始化,使用对应类型的默认值 ...

  5. 学习C语言以及C语言基础调查

    学习声乐的心得 你有什么技能比大多人(超过90%以上)更好?   就我个人而言,在所有的兴趣之中,做得比较好的应该属于声乐. 针对这个技能的获取你有什么成功的经验?   我对于声乐处始于兴趣,成功的经 ...

  6. [转载]学习C语言基本思路与参考书籍

    http://zhuanlan.zhihu.com/linjr/19694823 计算机行业发展非常快,大学里的教育基本都跟不上实际的社会需求.如果你所在的学校还在指定大家使用谭浩强的教材,或使用VC ...

  7. 《手把手教你学C语言》学习笔记(2)---学习C语言的目标和方法

    一.学习C语言的目标主要是: 熟练掌握C语言的关键字,语法规则,程序控制等: 掌握基本的数据结构,数组.链表.栈和队列等: 掌握C语言中指针和内存.数组与指针.函数与指针.变量和指针.结构体和指针.硬 ...

  8. (转)学习C语言基本思路与参考书籍

    计算机行业发展非常快,大学里的教育基本都跟不上实际的社会需求.如果你所在的学校还在指定大家使用谭浩强的教材,或使用VC6.0来教大家上机实验,那你不妨看看本文,这里有一些建议可以帮助你不会脱离社会太远 ...

  9. 我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗

    文章背景,回答提问:我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗? 我的建议是这样:1. 不要辞职.首先说,你对整个开发没有一个简单的了解,或一个系统的入门学习.换句 ...

随机推荐

  1. 性能测试脚本开发(C&C#&Java)

    一.C语言实现及相关问题解决 LR:C函数-功能描述 LR:C函数-适用范围 LR:C函数-头信息传递 LR:C函数-字符串编码转换 lr_convert_string_encoding(" ...

  2. Odoo11 新功能 : 栏位隐藏

        Odoo11增加了一个 新的 modifier-. 先上 前端框架代码     invisible / readonly / required 这几个 是经常在用的, column_invis ...

  3. 利用window.navigator.userAgent判断当前是否微信内置浏览器

    <!DOCTYPE HTML> <html lang="en"> <head> <meta charset="utf-8&quo ...

  4. STL源代码剖析 容器 stl_vector.h

    本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie vector --------------------------------------- ...

  5. Laravel 5.4---后端数据分页和前端显示分页结果

    后端数据(Eloquent 模型)分页 事先建立好Eloquent 模型和Controller 还有 前台的View.可以参考我之前的文章:Laravel建站03--建立前台文章列表和文章详情 在co ...

  6. CSU - 1556 Jerry&#39;s trouble(高速幂取模)

    [题目链接]:click here [题目大意]:计算x1^m+x2^m+..xn^m(1<=x1<=n)( 1 <= n < 1 000 000, 1 <= m < ...

  7. c#线程顺序执行

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  8. 有关SQL注入的知识

    SQL注入攻击是非常令人讨厌的安全漏洞,是所有的web开发人员,不管是什么平台,技术,还是数据层,需要确信他们理解和防止的东西.不幸的是,开发人员往往不集中花点时间在这上面,以至他们的应用,更糟糕的是 ...

  9. Erlang服务器内存吃紧的优化解决方法

    问题提出:服务器100万人在线,16G内存快被吃光.玩家进程占用内存偏高 解决方法: 第一步:erlang:system_info(process_count). 查看进程数目是否正常,是否超过了er ...

  10. HDU 5338(ZZX and Permutations-用线段树贪心)

    ZZX and Permutations Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/O ...