结构作为函数参数: 声明了一个结构就有了一种自定义的数据类型,这个数据类型和int.float.double一样,int等基本类型可以作为函数的参数,那么这种个自定义的结构类型也应该可以作为函数参数,比如: int numberofDays(struct date d):函数numberofDays的参数就是一种结构变量. 整个结构是可以作为参数的值传入函数的,这时是在函数内新建一个结构变量,并复制调用者的结构的值,这和数组是完全不一样的.结构除了可以作为参数,也可以作为返回值,例如下述程序中,…
定义结构: 在程序里,如果想要表达一个数据就需要一个变量,而每个变量又都需要一个类型,之前学过C语言中有int.double.float.char等这些基础类型,还有指针.数组等.如果你要表达的数据比较复杂,不是一个值,比如你要表达日期,有年月日三个值,要表达时间,有时分秒三个值,要表达一个人可能需要姓名.学号等一堆数据,但是又想要一个整体表达这么多数据,这时就需要C语言中一种特殊的东西,叫做结构! 一个结构就是一个复合的数据类型,里面有各种数据类型的成员,然后用一个变量来表达那么多的数据.比如…
结构数组: 和C语言中的int,double一样,一旦我们做出一个结构类型,就可以定义这个结构类型的变量,也可以定义这个结构类型的数组.比如下面这个例子: struct date dates[100]; struct date dates[] = {{4,5,2005},{2,4,2005}}; dates[100]是一个结构数组,其中每个元素是date结构的变量.对dates初始化的时候就需要两层括号,外层大括号是说初始化dates这个数组,里面的每个大括号都是一个数组元素,比如{4,5,20…
<>重定向 如果使用标准的printf输出,有一个比较简便的方法,可以将程序的结果写入一个文件.使用<和>符号,将程序运行结果重定向到文件中去,具体使用到的代码如下: ./test > 12.out //将运行结果写入文件12.out more 12.out //查看 cat > 12.in //将终端内容输入12.in ./test < 12.in //运行test,输入为文件12.in ./test < 12.in > 12.out //输入为文件…
指针应用场景一:交换两个变量的值 在学习函数时,交换两个数的值,做一个swap函数,传递值进去,也可以将两个值交换过来,没问题,可是离开swap就没有用了,为什么?因为传进去的是两个值. #include <stdio.h> void swap(int a,int b); int main(void) { ; ; swap(i,j); printf("i=%d,j=%d\n",i,j); ; } void swap(int a,int b){ int p; p=a; a=b…
使用devC++写hello world 第一步:文件-新建-源代码.然后输入"输出hello world"程序: 注意:写程序时关闭中文输入法,否则语句输入的分号可能会被识别为错误.除了printf外,剩余的代码叫做程序框架,是我们后面所有的程序都需要的. 第二步:保存时注意修改保存类型,devc++默认是C++文件,需要修改为C. 第三步:类似魔方的小方块的编译,运行或者编译+运行:或者运行菜单项下的运行.编译:或者F9快捷键.运行时会弹出小黑框,这是程序运行看结果的地方,这个小黑…
问题1:计算机遍布生活的各个方面,若你需要一个功能可以下载APP,我们需要的大部分功能都可以找到对应的APP,如果没有可以自己写一个软件,但是很少人需要这么做,那么我们为什么学习计算机编程语言? 学习语言重要的不是写软件而是1)通过学习语言去理解计算机是如何工作的?2)计算机擅长做什么?能够做什么?擅长做什么?不能够做什么? 问题2:计算机是如何解决问题的? 比如你在餐馆,想要一杯水.那么如果你跟一个服务员交流,只需要告诉服务员:"请给我一杯水",那么服务员知道怎么打一杯水给你,他会去…
关于C语言如何做文件和底层操作: 文件操作,从根本上说,和C语言无关.这部分的内容,是教你如何使用C语言的标准库所提供的一系列函数来操作文件,最基本的最原始的文件操作.你需要理解,我们在这部分所学习的,是函数库的使用,而非C语言.顺便我们还学习了很多和计算机相关的知识,比如重定向.文本文件和二进制文件的江湖恩怨.但是既然不是C语言,也就意味着你将来的工业环境下,未必还会使用这么原始的文件操作函数了.这些函数,只是一个标本,让你知道可以这样来操纵文件.但是,不见得所有的库都是以这样的方式来操纵文件…
typedef 虽然我们知道使用struct这个关键字定义一个结构类型,然后可以使用该结构类型定义变量.但是每次要使用的时候都需要带着struct这个关键字,那么如何摆脱这个关键字哪?C语言提供了一个叫做typedef的功能来声明一个已有的数据类型的新名字,typedef也是个关键字,比如: typedef int Length; 意思是Length是int类型的别名,可以代表int.在程序的变量定义或者参数声明时,如果出现Lenght就是表示int: Length a,b,len; Lengt…
枚举类型的定义 用符号而不是具体的数字来表示程序中的数字,这么表示的好处是可读性,当别人看你的程序,看到的是单词,很容易理解这些数字背后的含义,那么用什么符号来表示名字哪?需要const int常量的整数,不可修改的整型的变量.大家看下面的程序,0,1,2使用red,yellow,green代替,那么程序中就使用red,yellow,green而不是0,1,2: #include <stdio.h> ; ; ; int main(int argc,char const *argv[]){ ;…