摘要:
首先可以通过官网下载JDK:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html,至于下什么版本根据你的喜好 下载好以后直接运行安装包,一路继续、确认 将包安装完成之后,打开终端创建.bash_pr 阅读全文
摘要:
顾名思义,可变参数函数就是参数数量可变的函数,即函数的参数数量是不确定的,比如方法getnumbertotal()我们即可以传递一个参数,也可以传递5个、6个参数 使用可变参数必须注意的是: 必须包含一个普通参数 我们可以给va_start()方法传递一个NULL,但是需要通过第一个参数知道可变参数 阅读全文
摘要:
在C语言中,函数名也是指针变量,比如创建了一个add(int n,int m)的函数的同时也创建了一个名为add的指针变量,因此我们可以把函数指针当作一种类型为它赋值、当作参数传递等操作 C语言创建函数指针的公式: 返回类型 (*指针变量)(参数类型) 虽然函数指针是指针,但是在使用的时候我们可以省 阅读全文
摘要:
在C语言学习005:不能修改的字符串中我们知道字符串是存储在常量区域的,将它赋值给数组实际是将常量区的字符串副本拷贝到栈内存中,如果将这个数组赋值给指针,我们可以改变数组中的元素,就像下面那样 但是现在我们不想让指针可以修改字符串数组的中的元素,而又可以得到字符串中的元素,那么我么需要再拷贝一份字符 阅读全文
摘要:
malloc和free都包含在<stdlib.h>头文件中 局部变量由于存储在栈中,一旦离开函数,变量就会被释放,当我们需要将数据持久使用,就需要将数据保存到堆中,而在堆中申请内存空间就需要malloc方法;malloc方法在堆中建立一片内存空间,然后返回一个指针,这个指针是void*类型,保存了这 阅读全文
摘要:
在链表中插入值,只需要修改指针的值就行 链表相对于数组而言,插入数据非常快,但是如果有一个很长的链表,要想访问最后一个元素,你需要从第一个开始一层一层的读下去,而数组可以通过索引直接访问元素,所以使用数组还是链表需要根据环境来决定 阅读全文
摘要:
联合 联合和结构的区别是,结构会为每个字段申请一片内存空间,而联合只是申请了一片内存空间然后所有字段都会保存到这片空间中,这片空间的大小由字段中最长的决定,下面我们就开始定义一个联合 联合的使用 我们可以通过很多的方式为联合赋值 但是在读取联合的值的时候会很容易出问题,比如我们保存了一个float类 阅读全文
摘要:
struct的基本使用 将结构变量赋值给另一个结构变量时,计算机会创建一个全新的结构副本,然后将每个字段都复制过去;如果结构中有指针,那么复制的仅仅是指针的值 结构还可以嵌套使用 更简单的创建结构变量 通过使用typedef为结构命名,这样在创建结构变量的时候可以省去struct关键字 我们还可以直 阅读全文
摘要:
编译多个C源代码文件 当程序文件越来越多,修改了其中的一部分代码文件,我们并不需要全部重新编译,只需要编译其中一部分就可以,下面我们创建了一个launch程序,除了主程序,我们创建了3个功能代码文件reaction.c pitch.c engine.c 首先将源代码编译为目标文件 gcc -c *. 阅读全文
摘要:
如果将所有的代码都写到一个文件中,当对于小项目来说不会有什么问题,但是当它一个很大的工程的时候,如果将所有代码都写到一个文件中,不但开发起来很困难,维护更是头疼,所以我们应该将代码按不同的功能分别建立相应的代码文件,下面我们将program.c的代码分成多个文件 首先,我们将功能代码放到另一个文件c 阅读全文
摘要:
直接上代码 在上面的main方法中,第一个参数argc表示数组中的元素个数,第二个参数*argv表示参数数组,即argc表示的是*argv的长度;有意思的是*argv的第一个元素是程序的名称 参数之间需要空格分开,不然参数会连在一块 同时,程序中不能同时包含无参的main和有参数的main函数,编译 阅读全文
摘要:
在文件input.csv文件中,我们有数据如下 现在我们将input.csv文件下的读取并写入到output.csv文件,我们会用到fopen函数 函数原型:FILE * fopen(const char * path,const char * mode) fopen还有很多模式,比如 w,写入文件 阅读全文
摘要:
现在我们需要对gpsdata.csv文件中的数据进行筛选,然后将符合条件的数据输出到output.json文件中,第一种方式当然是在之前的代码中进行修改,但是如果我们不想修改原来的代码就能得到我们期望的结果,该如何实现呢? 我们需要用到管道,管道可以连接一个进程的标准输出与另一个进程的标准输入,并用 阅读全文
摘要:
在上一节中的数据文件中(C语言学习007:重定向标准输入和输出),如果文件中的数据包含非法数据,如何让程序显示一条错误的提示消息呢?就需要用到标准错误 我们可以看到,即使用”>“运算符重定向输出到output.json文件,依然可以在屏幕上看到错误消息;创建标准错误的目的就是为了区分普通输出和错误消 阅读全文
摘要:
先来完成一个将输入数据转换成json格式输出的小任务 有意思的是,我们可以直接将一个配置好的经纬度文件通过程序直接生成json文件,这是gpsdata.csv文件里的数据 通过程序直接运行,在程序同目录中生成了output.json文件 为什么会这样呢? 在用scanf()从键盘读取数据、print 阅读全文
摘要:
1 #include <stdio.h> 2 #include <string.h> //字符串处理库 3 4 char tracks[][80]={ 5 "I left my heart in Harvard Med School", 6 "Newwark,Newwark - a wonderfu 阅读全文
摘要:
一段有问题的代码,你能看出来么? 编译这段代码并不会有什么问题,一段运行程序就崩溃;因为这段代码修改了内存中常量区的值 计算机将程序载入内存时,会把所有常数放到常量存储区,这部分内存是只读的 为了更改字符串的内容,需要对它的副本进行操作,就是将字符串的内容复制到非只读区域就可以了 那么这和之前的代码 阅读全文
摘要:
在C语言中,字符串实际上就是字符数组,在内存中字符串"Shatner"存储的形式是这样的 由于C语言并不知道数组有多长,所以用"\0"表示字符串的结束位置,通过sizeof运算符可以取到字符串在内存中占用多少个字节 同样的字符串在下面的代码中获取的长度却不一样,你知道是什么原因么? 1 void S 阅读全文
摘要:
在C中使用指针的原因 避免副本 在函数调用的时候,可以只传递数据的引用,而不用传递数据 数据共享 两段代码可以同时操作同一份数据,而不是两份独立的副本 使用指针读写数据 船长,向东航行! 阅读全文
摘要:
#include //引用相关的外部库,stdio.h包含了终端读写数据的代码 //程序入口,程序通过main函数的返回值判断程序是否运行成功,0表示成功,非0表示程序运行时除了问题 //早期的ANSI C标准中main的返回值可以是void类型,但是C99中必须是int int main(){ int decks; puts("输入有几副牌");//在终端打印数据 s... 阅读全文