
c语言基础
q1989424
这个作者很懒,什么都没留下…
展开
-
文件操作实例-加密文件
#include void encryptFile(){ FILE * fileRead; fileRead = fopen("/Users/xxxxxxxx/Desktop/原文件.mp4", "r"); FILE * fileWrite; fileWrite = fopen("/Users/xxxxxxxx/Desktop/加密文件.mp4",原创 2015-10-30 22:06:28 · 471 阅读 · 0 评论 -
数组作为函数的参数
1、数组元素作函数实参数组元素就是下标变量,它与普通变量并无区别。 因此它作为函数实参使用与普通变量是完 全相同的,在发生函数调用时,把作为实参的数组元素的值传送给形参,实现单向的值传送。2、数组名作为函数参数当函数的形参是一个数组时,那么我们的实参必须传入一个数组(数组名)注意:此时在函数内部改了某个元素的值,外部数组元素也会发生改变原创 2015-10-23 18:22:37 · 561 阅读 · 0 评论 -
c语言的多文件开发
我们实际开发中的项目,基本都是团队协作开发,每人负责一个模块(功能),这样比较利 于项目的快速开发。案例: 模块:数学功能将1个功能模块的函数应该单独的写在1个文件之中. 每1个模块1个文件. 新建1个.c文件.在这个.c文件之中写上相关的函数.在要调用的地方, 先声明函数以后 才能调用.这么做可能存在的问题:1). 如果写模块的人 新增了1个函数 那么原创 2015-10-23 18:15:48 · 443 阅读 · 0 评论 -
函数的申明
1、为什么需要对函数进行申明 编译器很笨,只会从上到下依次将代码翻译成计算机可以识别的二进制指令,所以如果当函数的申明写在它被调用之后,编译器会报错!为了解决这个问题,所以如果函数的实现写在调用语句后面的话则需要先对函数进行申明。代表告诉编译器:有这个函数,你只管编译就好!2、 完整的写函数的两个步骤1). 函数的声明语法: 只写函数头 直接加1个分号结束.原创 2015-10-23 17:46:01 · 1069 阅读 · 0 评论 -
值传递和引用传递
值传递: 使用函数,如果参数值基本数据类型,那么传递数据的时候是将数据复制一份传递到函数 中. 在函数调用时将复制的数据赋值给函数的形式参数. 由于传递的是数据本身,因此常常称 为值传递。简单总结:传递的是变量里存的具体数值(相当于copy了一份) 如:引用传递:使用指针类型的变量作为函数的参数,函数在调用的时候传递的是变量的地址. 那么在函数 中使用的变量进行原创 2015-10-23 18:33:35 · 390 阅读 · 0 评论 -
c语言中typedef的使用
typedef 可以自定义一个类型 typedef的作用是可以将任何类型相当于改一个你自己喜欢的名字。例如,改完以后int类型可以不叫int类型,直接只叫i类型(或者直接改为中文名) 语法:typedef 原本类型的名字 你想改的类型名字一般我们都把typedef用在 匿名结构体上给它一个别名原创 2015-10-22 23:04:26 · 409 阅读 · 0 评论 -
c语言的结构体
一、结构体简介结构体就是可以存多种类型多个数据的变量跟数组的不同之处数组虽然也能存多个数据,但是只能存同类型的数据。但是结构体是不光能存多个数据,并且可以允许数据是不同类型的定义结构体类型的语法: struct 结构体名{ 成员列表; }; 切记切记有分号! 说明:成员列表原创 2015-10-22 22:59:23 · 369 阅读 · 0 评论 -
c语言中字符串的输入和输出
字符串的输出和输出a、使用的格式字符串为“%s”,表示输入、输出的是一个字符串。例如b、使用字符串输入(gets)、输出(puts)函数如warning: this program uses gets(), which is unsafe.使用gets()时会给出上述警告,提示不安全(也就是输入的字符串大于数组的容量时字符串就溢出到 其他存储空间 了原创 2015-10-22 22:51:46 · 2040 阅读 · 1 评论 -
C语言小游戏-走迷宫
改程序是在xcode下写的c语言代码原创 2015-10-30 22:20:31 · 2015 阅读 · 0 评论 -
c语言中字符串的常用函数
1、字符串输出函数 puts格式: puts(字符数组名)功能:把字符数组中的字符串输出到显示器。 即在屏幕上显示该字符串。puts和printf 加%s 的区别: 1.puts不需要格式化控制符,printf需要 2.puts只能输出字符串,printf其他类型都可以输出 3.puts自带换行原创 2015-10-22 22:54:29 · 530 阅读 · 0 评论 -
c语言中的字符串
一、C语言中的字符串c语言中没有字符串类型字符串实际就是多个字符连在一起,所有可以用字符数组来存放字符串。但是使用字符数组输出时需要使用for循环例如:这样使用十分不方便,有没有一种简约的方式,让我们一下子就能输出呢?有但是需要改两个地方! 1.长度要+1 2.末尾要加一个'\0'然后用 %s(格式化控制符)就可以输出了!原创 2015-10-22 22:50:29 · 841 阅读 · 0 评论 -
c语言指针介绍
1、指针的基本概念在计算机中,所有的数据都是存放在存储器中的。一般把存储器中的一个字节称为一个内存单元, 不同的数据类型所占用的内存单元数不等,如整型量占4个单元,字符量占1个单元等,为了正确地访 问这些内存单元,必须为每个内存单元编上号。根据一个内存单元的编号即可准确地找到该内存单 元。内存单元的编号也叫做地址。既然根据内存单元的编号或地址就可以找到所需的 内存单元,原创 2015-10-23 18:29:20 · 736 阅读 · 0 评论 -
c语言中指针变量作为函数的参数
1、定义方法返回值类型 函数名(类型 *指针变量名){函数体; }如:void changeNum(int *pInt){printf("这个数是:%d",*pInt);*pInt = 30; //这里修改指针指向的空间里的值后,主调函数外面的值也就修改了 }2、调用方法 函数名(变量地址);例:int num = 16原创 2015-10-23 18:32:30 · 1123 阅读 · 0 评论 -
全局变量和局部变量
全局变量: 就是定义在函数外的变量就叫全局变量(不在代码块{}里面定义的变量) 局部变量: 就是定义在函数内的变量就叫局部变量(在代码块{}里面定义的变量) 区别: 1.局部变量只能在它所在的作用域里面使用,全局变量在任意函数内都可以使用 2.局部变量在它所在的代码块结束后就被回收,全局变量在程序结束的时候才会被回收原创 2015-10-23 17:49:39 · 558 阅读 · 0 评论 -
c语言实例-通讯录
代码是在xcode中写的c语言代码原创 2015-10-30 22:39:19 · 619 阅读 · 0 评论 -
c语言的文件操作
文件的操作步骤步骤:一、打开文件使用fopen函数打开文件,然后使用文件指针变量接受。1、文件指针变量的声明FILE *变量名;注:FILE四个字都需要大写。例:FILE *fp;2、fopen函数的使用:文件指针 = fopen("文件名","文件使用方式");函数有1个返回值返回值的类型的事文件指针。注意:一般对文件返回值要做一个判断指针是否原创 2015-10-30 22:09:32 · 628 阅读 · 0 评论 -
c语言中数组长度的计算
一维数组 计算数组的长度: sizeof(数组名) 得到这个数组占用内存的总长度 公式: sizeof(数组名) / sizeof(数组类型);二维数组 二维数组计算列数: 每行的总长度 / 元素占用的字节原创 2015-10-23 18:27:34 · 39682 阅读 · 0 评论 -
二维数组
二维数组: 简单来说就是一个数组里面的每个元素又是一个数组 语法: 类型 数组名[大元素个数][每个元素内的小空间个数]; 例: int nums[4][3]; 记住:大元素个数可以理解为行数,每个元素内的小空间个数可以理解为列数 所以我们只要把二维数组原创 2015-10-23 18:25:38 · 381 阅读 · 0 评论 -
冒泡排序
如:有7个数70 60 5040 30 20 10 现需用冒泡排序将其从小到大排列具体思想步骤:先用第1个数跟第2个数比较,发现70比60要大,所以70跟60交换位置,即现在位 顺序为:60 70 50 40 30 20 10 再然后用第2个数跟第3个数进行比较,因为此时第2个数已经变为 了70,所以是70与第3个数比较,发现70又比50要大,于是将第2个数与第3个数交原创 2015-10-23 18:23:16 · 334 阅读 · 0 评论 -
C语言的数组的介绍
数组:一个变量保存多个类型相同的数据数组的语法: 类型 数组名[正整数]; 正整数就是你这个变量要保存多少个数据 例:int nums[10]; //保存10个int数据 char chs[5]; //保存5个字符数据数组的三个专业术语:1.元素:数组之中划分的小空原创 2015-10-23 18:19:21 · 438 阅读 · 0 评论 -
C语言的预处理指令-include指令
1、#include是一个预处理指令1) 什么是与处理指令? 就是在源代码编译之前进行的一系列操作。其中预处理指令包含:文件包含、宏定义、条件编译指令 等等 预处理指令的特点:A、所有的预处理指令都是以#开头 B、没有分号C、在编译之前执行2)#include指令是一条文件包含预处理指令作用:将指定文件的内容拷贝到写这条#include指令的地方 语法:#inc原创 2015-10-23 18:12:36 · 3450 阅读 · 0 评论 -
return关键字
return关键字也有结束的作用,但效果比break、continue恐怖的多,是直接结束整个函数。return 关键字后面的语句不会被执行总结: break continue returnbreak:用在循环或者switch case语句中,用来结束其所在的循环或者switch case语句continue:用在循环中,用来结束其原创 2015-10-23 17:50:41 · 611 阅读 · 0 评论 -
有返回值的函数
什么时候需要函数的返回值? 当函数执行完毕能得出一个结果,但是函数内部不知道怎么正确地处理这个结果,恰好这个结果又是调用者想用来得到的,就需要有函数的返回值!怎样让函数有返回值?1)确定要返回的值的类型 2)修改函数的返回值类型为你想要返回值的类型(如将之前的void改为int) 3)在函数内使用 return 表达式 返回 语法: 返回值类型原创 2015-10-23 17:41:44 · 6613 阅读 · 0 评论 -
一般的函数
函数的作用: 函数就相当于是一个打包盒,将一段代码打包在这个盒子里,当需要用这段代码时,只要把这个盒子拿过来就行了。 稍微专业点的说法: 将一段需要被重用的代码封装在函数中,什么时候想要执行这段代码,只需要调用这个函数就行了。函数的定义:返回值类型 函数名 (参数列表){ 函数体}例:void test(){ }i原创 2015-10-18 22:10:51 · 498 阅读 · 0 评论 -
有参函数
1、什么是函数的参数? 在函数名右边的小括号里申明的变量,就叫参数。注意:没有分号!2、函数的参数的本质: 相当于函数内部的局部变量,所以不能在函数内部再定义一个同名的变量,并且在函数 内部可以直接使用参数的值调用函数时需要给参数进行赋值,否则会报错!如:3、带多个参数的函数定义方法:返回值 函数名 ( 参数类型 参数名1,参数类型 参数名原创 2015-10-18 22:24:08 · 1127 阅读 · 0 评论 -
for循环
1、for循环的语法格式 C语言中的for语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环 次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。一般形式:for(表达式1;表达式2;表达式3) {循环体;}2、for循环执行过程:1.先执行表达式1,跳转到22.判断表达式2的结果是否为真,如果为真,跳转到3原创 2015-10-18 21:59:54 · 462 阅读 · 0 评论 -
循环的中断语句
break和continue语句都可以用在循环中,用来跳出循环(结束循环);break语句还可以用在 switch语句中,用来跳出switch语句。1、break语句通常用在循环语句和开关语句中。2、continue 语句(结束本次循环,继续下次循环) 用法continue语句的作用是跳过循环体中剩余的语句而继续下一次。continue语句只用在原创 2015-10-18 21:55:41 · 2522 阅读 · 0 评论 -
猜拳游戏的制作-使用if制作
/* 分析: 要让电脑出拳 要让玩家出拳 玩家出拳让玩家输入 电脑出拳应该随机输入 约定: 0--代表剪刀 1--代表石头 2--布 电脑也是 0--代表剪刀 1--代表石头 2--布 等于就是要让玩家输入0或者1或者2 电原创 2015-10-17 21:12:51 · 869 阅读 · 0 评论 -
关系运算符
关系运算符: >: 表示判断左边的表达式是否大于右边的表达式 >=: 表示判断左边的表达式是否大于或者等于右边的表达式 !=: 表示判断左边的表达式是否不等于右边的表达式 ==: 表示判断左边的表达式是否等于右边的表达式 注意:==才是相当于数学中的=原创 2015-10-17 20:56:44 · 525 阅读 · 0 评论 -
自增和自减运算
++: 在原来的值的基础上+1 --: 在原来的值的基础上-1 前缀++(--)和后缀++(--)的区别: 前缀:先自增或自减再参与运算 后缀:先用原来的值参与运算,再自增或自减 无论是前缀还是后缀,其值最终都会自增或自减使用注意:只能用于标准类型的单原创 2015-10-17 20:54:40 · 658 阅读 · 0 评论 -
复合运算符
复合运算符作用就是:让变量的值在自身的基础之上进行运算。运算符 +=:就是在原来的值的基础上进行加一个值的操作 -=:就是在原来的值的基础上进行减一个值的操作 *=:就是在原来的值的基础上进行乘一个值的操作 /=:就是在原来的值的基础上进行除一个值的操作 %=:就是在原来的值的基础上进行取余一个值的操作+= 例子:-=原创 2015-10-17 20:50:23 · 2529 阅读 · 0 评论 -
有符号和无符号 unsigned signed
无符号类型 - unsigned 正数:直接写数字,无符号 负数:前面加一个减号 ,有符号 -3 -2 -1 int long short分为有符号和无符号之分 区别:有符号的可以保存负数无符号的不能保存负数C语言中,为了对整数数据更加精确区分,还分为有符号(signed)和无符号 (un原创 2015-10-17 20:15:01 · 1080 阅读 · 0 评论 -
c语言的基础数据类型
1.整型:用于准确地表示整数,根据表示范围的不同分为以下三种: int类型、long类型、short类型短整型(short) 2.实型(浮点型):用于标识实数(小数)根据范围和精度不同分为以下两种:float类型、double类型单精度浮点数(float) 注意:float只能够保证7位数字是有效的!!!3.字符型:用来述单个字符,char 如'a','b',原创 2015-10-17 19:25:07 · 307 阅读 · 0 评论 -
利用arc4random_uniform()产生随机数
随机数函数arc4random_uniform(x),可以用来产生0~(x-1)范围内的随机数。如果要生成1~x的随机数,可以这么写:arc4random_uniform(x)+1。10到100:rc4random_uniform(91)+10原创 2015-10-16 22:32:55 · 811 阅读 · 0 评论 -
第一个c语言程序 - c语言打印一句话
步骤:1、新建一个文本文件,文件的格式为.c 如:case.c2、打开这个文件,并输入以下代码,然后保存#include int main(){printf(" 对面的女孩看过来!\n");return 0; }这是写代码阶段,.c文件就是C语言的源代码文件 (称之为源文件)3、在终端输入跳转到这个文件所在路劲,然后输入以下内容,原创 2015-10-17 19:06:54 · 4926 阅读 · 0 评论 -
类型转换
在基本数据里面,所有的值都可以进行转换 int char long short float double类型转换分为:隐式数据类型转换 、显示数据类型转换隐式数据类型转换int i=1;i=i+9.801按照隐式处理方式,在处理i=i+9.801时,首先i转换为double型,然后进行相加,结果为double型, 再将double型转换为整型赋给原创 2015-10-17 20:41:27 · 294 阅读 · 0 评论 -
格式化控制符
例: printf("数字1= , 数字2= "); 我想让两个等号后面的两个数字,是由我填多少就打印多少,怎么做?解决: printf("数字1=%d,数字2=%d",10,20);那么,程序会自动把10放在前面一个位置,把20放在后面的位置 打印结果为:数字1=10,数字2=20 像这种类似%d的东西,称之为格式化控制符! 以下是部分格式化控制符以及解释:原创 2015-10-17 19:32:04 · 1878 阅读 · 0 评论 -
循环结构之while篇
1、while循环的格式:while ( 条件 ) {语句1; 语句2; ....} 2、while循环使用方法:1、while循环的特点:如果while中的条件一开始就不成立,那么循环体中的语句永远不会被执行2、while语句的语义是:如果条件成立,就会执行循环体中的语句(“循环体”就是while后面大括号{}中的内容)。 然 后再次判断条件,重复上述过程,直原创 2015-10-17 21:22:04 · 1634 阅读 · 0 评论 -
C语言中的变量
变量:顾名思义就是可以变化的量,他可以存任意类型的C语言中的数据。但是他跟常量最大的不 同就是,变量可以任意修改! 语法: 类型 变量名 = 值; 例: int salary = 2500; char ch = 'a'; 第二种写法: 类型 变量名;原创 2015-10-17 19:27:55 · 393 阅读 · 0 评论 -
分支结构之if篇
if语句 1.第一种形式: 语法:if(表达式){ 语句块; } 语义:如果表达式的结果为真,则执行语句块,否则不执行语句块 第二种形式: 语法: if(表达式){ 语句块1; }else{原创 2015-10-17 21:08:16 · 756 阅读 · 0 评论