
C语言
斯立扑
这个作者很懒,什么都没留下…
展开
-
C语言基础15
复习:结构:结构是一种由程序员自己设计的一种数据类型,它用于描述一个事物的各项数据,由若干个基础的数据类型组成。设计:struct 结构体名{类型 成员名;…};定义结构变量:struct 结构体名 结构变量名;注意:也可以在设计时直接定义结构变量。访问成员:结构变量名.成员名结构指针->成员名初始化:顺序:struct 结构体名 结构变量名 = {v1,v2,v3,…};指定:struct 结构体名 结构变量名 = {.成员名=v1,…};类型重定义:在C语言中原创 2020-08-18 22:52:27 · 249 阅读 · 0 评论 -
通讯录
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include <getch.h>static int count = 0; // 有效联系人数量static char name[100][20]; // 姓名static char sex[100]; // 性别static char tel[100][12]; // 电话v原创 2020-07-29 22:20:00 · 150 阅读 · 0 评论 -
C语言基础14
结构:结构是由程序员自己设计一种数据类型,用于描述一个事物的各项数据,由若干个不同的基础类型组成。设计:struct 结构体名{ 类型 成员名; ...};定义结构变量:struct 结构名 变量名;注意:定义结构变量时,struct不能省略。定义结构变量初始化: struct 结构名 变量名 = {v1,v2,v3}; 要根据成员的顺序初始化 struct 结构名 变量名 = {.成员名=va2,.成员名=v3,...}; 只初始化某原创 2020-07-29 22:18:41 · 189 阅读 · 0 评论 -
C语言基础13
复习:预处理指令:C代码不能直接被编译器编译,需要一段程序把它翻译一下,负责翻译的程序叫作预处理器,,翻译的过程叫预处理,被翻译的语句叫预处理指令,以#开头都是预处理指令。gcc -E code.c 查看预处理结果gcc -E code.c -o code.i 把预处理的结果保存在文件中。1、文件包含 #include 把一个头文件导入到当前文件中。 #include <> 从系统指定的路径查找并导入头文件。 #include "" 先从当前路径原创 2020-07-29 22:18:01 · 196 阅读 · 0 评论 -
C语言基础12
复习:1、输出缓冲区程序输出的数据并没有立即写入"文件",而先存储到了缓冲区中,当满足一定的条件后才写入文件:1、从输出切换到输入2、遇到换行符3、程序结束4、缓冲区满4K5、手动刷新 fflush2、输入缓冲区在终端输入数据时此时数据暂由终端保管,当按下回车键,数据由终端写入到程序的输入缓冲区,scanf函数再从输入缓冲区中读取数据赋值给变量。 1、当想从输入缓冲区中读取整型和浮点型数据时,而缓冲区中的数据是字母或符号,此时会读取失败,并且不会从缓冲区中拿走字母或符号,导致接下来原创 2020-07-29 22:17:09 · 162 阅读 · 0 评论 -
C语言基础11
复习:堆内存管理:1、C语言中没有管理堆内存的语句,只能使用标准库中的函数。#include <stdlib.h>void malloc(size_t size);功能:从堆内存申请size个字节的内存块返回值:内存块的首地址注意:void 在C++编译中不能自动转换成其它类型的指针,如果想让代码在C++中兼容需要强制类型转换。int* p = (int*)malloc(4); void free(void *ptr); 功能:释放一块堆内存 ptr:内存原创 2020-07-29 22:15:55 · 248 阅读 · 0 评论 -
C语言基础10
什么是堆内存:是进程的一个内存段(text、data、bss、heap、stack),由程序员手动管理,特点就是足够大,缺点就是使用麻烦。为什么使用堆内存:1、随着程序的复杂数量变多。2、堆内存的申请释放受控制。如何使用堆内存:注意:C语言中没控制堆内存的语句,只能使用C标准库提供的函数。#include <stdlib.h>void *malloc(size_t size);功能:从堆内存中申请size个字节的内存,申请内存中存储是什么内容不确定。返回值:成功返回申请到的原创 2020-07-29 22:14:59 · 593 阅读 · 0 评论 -
C语言基础09
什么是指针:指针是一种数据类型,使用它可以用来定义指针变量,指针变量中存储的其实是整数,这种整数代表了内存的编号。为什么要使用指针:1、函数之间相独立,但有些时候需要共享变量。传参是值传递全局变量容易命名冲突使用数组还需要传递长度命名空间是独立的,但地址空间是同一个,所有指针可以解决这个问题。2、由于函数之间传参是值传递(内存拷贝),对于字节数比较多的变量,值传递效率较低,如果传递变量的地址只需要传递4|8字节。3、堆内存无法取名字,它不能像data、bss、stack让变量名与内存建立联原创 2020-07-20 23:46:41 · 103 阅读 · 0 评论 -
C语言基础08
复习:自定义函数:1、函数声明 告诉编译器函数的格式,方便它检查调用者的参数、返回值。2、隐式声明 当调用函数时如果没有声明和定义,编译器会猜测函数的格式,函数的形参按照调用者的实参猜测,返回值默认int。3、函数定义 函数的定义出现在调用之前可以省略声明。3、函数传参值传递:普通变量 函数之间不能共享同名变量(局部)。址传递:数组的长度会丢失,需要额外增加一个参数传递数组的长度,同时该数组会被两个函数共享(调用者和被调用者);返回值:return语句不是给把数据传递给调用者,而放在一个他们原创 2020-07-20 23:45:47 · 132 阅读 · 0 评论 -
C语言基础07
复习:进制转换:十进制转二进制:求余,直到商为0,过种的余数就是二进制(逆序)。二进制转十进制:2^(n-1)二进制转八进制:三位二进制对应一位八进制二进制转十六进制:四位二进制对应一位十六进制,超过10用ABCDEF表示代码中0开头的是八进制数据,0x开头的是十六进制数据printf %o以八进制显示 %x以十六进制显示原码与补码: 正数的原码就是它的补码 负数的 ~原码+1 才是它的补码 无符号的补码就是原码 有符号最高位是0的补码就是原码原创 2020-07-20 23:43:23 · 181 阅读 · 0 评论 -
C语言基础06
进制转换:十进制转二进制:求余法:用2对数据求余,然后再对商继续求余,直到商为0结束,过程中产生的余数就是该数据的二进制(逆序)。求权法:数据 - 2^(n-1) 如果可以减 第n位就是1,否则是0。练习1:输入一个正整数m,显示该数据的n(>=2)进制,超过10的用字母显示。二进制转十进制:每位的2^(n-1) 求和 10101100 128+32+8+4 172注意:二进制数据转换成八或十六进制是为了方便记录二进制数据。二进制转八进制:三位二进制对应一个八进制。原创 2020-07-15 23:26:56 · 140 阅读 · 0 评论 -
推箱子
1、#include<stdio.h>#include<stdlib.h>#include<getch.h>int main(int argc,const char* argv[]){char map[8][8] = { {0,0,3,3,3,3,0,0},{0,0,3,5,5,3,0,0},{0,3,3,0,5,3,3,0},{0,3,0,0,4,5,3,0},{3,3,0,4,0,0,3,3},{3,0,0,3,4,4,0,3},{3,0,0,原创 2020-07-13 23:54:21 · 176 阅读 · 0 评论 -
走迷宫
#include <stdio.h>#include <stdlib.h>#include <time.h>#include <getch.h>//读取键盘int main(){char maze[10][10] = {{’#’,’#’,’#’,’#’,’#’,’#’,’#’,’#’,’#’,’#’},{’#’,’@’,’#’,’ ‘,’ ‘,’ ‘,’ ‘,’ ‘,’ ‘,’ ‘},{’#’,’ ‘,’#’,’ ‘,’#’,’ ‘,’#’,原创 2020-07-13 23:51:18 · 116 阅读 · 0 评论 -
C语言基础05
数组:什么是数组:变量的组合,是一种批量定义变量的方式。定义:类型 数组名[数量];int arr[5];使用:数组名[下标];下标:从零开始,范围:0~数量-1。遍历:与for循环配合,使用循环变量i当作数组的下标。初始化:类型 数组名[数量] = {1,2,3,4,5,…};1、数组与普通变量一样默认值是随机的,为了安全要对进行初始化。2、这种初始化语法只能在定义数组时使用,而且必须使用常量初始化。3、初始化数据过多,编译器会丢弃并产生警告。4、初始化数据不够,编译器则会补0。5原创 2020-07-13 12:50:42 · 372 阅读 · 0 评论 -
C语言基础04
复习:1、数据类型:signed char 1 %hhd -128~127signed short 2 %hd -32768~32767signed int 4 %d 正负20亿signed long 4 %ldsigned long long 8 %lld 9天开头的19位数unsigned char 1 %hhu 0~255unsigned sho原创 2020-07-09 23:19:58 · 287 阅读 · 0 评论 -
C语言基础03
一、数据类型为什么对数据进行分类:节约存储空间,提高运行速度。整型: signed signed char 1 -128~127 signed short 2 -32678~32767 signed int 4 正负20亿 signed long 4/8 正负20亿/9开头19位整数 signed long l原创 2020-07-08 23:43:31 · 222 阅读 · 0 评论 -
C语言基础02
C语言简介:BCPL->newB->C->UNIX->Linux->gcc C语言专门编写操作系统的语言,所以天生适合对硬件编程,也以运行速度快著称,也非常适合实现数据结构和算法。 由于出现时间过早,有很多缺陷,也没想普通人会使用C语言编程,因此存在着些陷井,但前辈总结了一些避免的经验《C语言陷井和缺陷》。 自由源于自律。在编写程序时一定程度上的自律能给予更多的自由。C89语法标准,也是gcc默认的语法标准。C99语法标准,对C语言的扩展和增原创 2020-07-07 22:44:28 · 170 阅读 · 0 评论 -
C语言基础01
复习:结构:结构是一种由程序员自己设计的一种数据类型,它用于描述一个事物的各项数据,由若干个基础的数据类型组成。设计:struct 结构体名{类型 成员名;…}; 定义结构变量: struct 结构体名 结构变量名; 注意:也可以在设计时直接定义结构变量。 访问成员: 结构变量名.成员名 结构指针->成员名 初始化: 顺序:struct 结构体名 结构变量名 = {v1,v2,v3,...};原创 2020-08-06 22:54:21 · 293 阅读 · 0 评论