
C语言
是会一条路走到黑的呀
这个作者很懒,什么都没留下…
展开
-
sizeof和strlen、线性表
目录1、sizeof和strlen2、线性表1、sizeof和strlenchar sArr[] = "ILOVEC";/*用strlen()求长度*/printf("sArr的长度=%d\n", strlen(sArr));很显然,上面示例代码的运行结果为 6(因为不包括结束字符 \0)。char sArr[] = "ILOVEC";/*用sizeof求长度*/printf("sArr的长度=%d\n", sizeof(sArr));相对于函数 strlen原创 2022-04-09 21:36:54 · 1784 阅读 · 0 评论 -
逻辑结构与存储结构
目录顺序存储:链式存储:算法:时间复杂度:空间复杂度:逻辑结构-数据元素之间的逻辑关系-抽象的(集合结构、线性结构、树形结构、图形结构)存储结构-数据结构在计算机中的表示-具体的(顺序存储、链式存储、索引存储、散列存储)顺序存储:数组就是顺序存储优点:1、可以实现随机存取2、每个元素占用最少的空间缺点:只能使用整块的存储单元,会产出较多的碎片链式存储:结构体的一部分储存数据,另一部分储存下一个数据的地址优点:充分利用所有存储单元,不会出原创 2022-04-08 14:40:45 · 198 阅读 · 0 评论 -
结构体、结构体指针、C++的引用
目录1、结构体与结构体指针1.1 结构体的定义、引用、初始化1.2 结构体指针1.3 typedef的使用2、C++的引用讲解1、结构体与结构体指针有时候需要将不同类型的数据组合为一个整体,以便于使用。例如,一名学生有学号、姓名、性别、年龄、地址等属性,如果针对学生的学号、性别、年龄等都单独定义一个变量,那么在有多名学生时,变量就难以分清。为此,C语言提供结构体来管理不同类型的数据组合。1.1 结构体的定义、引用、初始化#define _CRT_SECURE_N原创 2022-04-07 16:43:29 · 909 阅读 · 0 评论 -
函数的声明、递归调用
目录1、函数的声明、定义与调用1.1 函数的声明与定义1.2 函数的分类与调用2、递归调用3、变量及函数的作用域3.1 局部变量1、函数的声明、定义与调用1.1 函数的声明与定义strcpy没有头文件也可以运行的原因:这个函数的实现是在C库中,头文件中只是声明1.2 函数的分类与调用实参向形参的数据传递是单向“值传递”,只能由实参传给形参,而不能由形参传回给实参。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参原创 2022-04-07 09:39:16 · 443 阅读 · 0 评论 -
指针的本质与使用场景
目录1、指针的本质1.1 指针的定义1.2 取地址操作符与取值操作符2、指针的使用场景2.1 指针的传递2.2 指针的偏移2.3 指针与自增、自减运算符2.4 指针与一维数组2.5 指针与动态内存申请2.6 字符指针与字符数组的初始化3、二级指针3.1 二级指针的传递1、指针的本质1.1 指针的定义一般在内存地址中存储的是数据,如果我们需要将某个变量的地址保存下来,就需要用到指针。1.2 取地址操作符与取值操作符取地址操作符为&am原创 2022-04-06 21:26:09 · 1391 阅读 · 0 评论 -
9-3、str系列字符串操作函数
str系列字符串操作函数主要包括strlen、strcpy、strcmp、strcat等。strlen函数用于统计字符串的长度(不包括结束符\0),strcpy函数用于将某个字符串复制到字符数组中,strcmp函数用于比较两个字符串的大小,strcat函数用于将两个字符串连接到一起。需要使用头文件string.h1、strlen#include <stdio.h>#include <string.h>int main(){ char c[20] = "hell原创 2022-04-07 09:46:41 · 454 阅读 · 0 评论 -
9-2、gets和puts
1、gets函数类似于scanf函数,用于读取标准输入,但是scanf函数在读取字符串时遇到空格就会认为读取结束,所以当输入的字符串中存在空格时,就需要使用gets函数进行读取。gets只能读取字符,scanf除了可以读取字符,还能读取整型、字符型等。c是字符数组or字符指针?char c[20]c是一个字符数组,但是编译器给c内部存了一个值,c里边存储的值的类型是字符指针2、puts函数类似于printf函数,用于输出标准输出#include <stdio.h>原创 2022-04-05 15:26:36 · 1072 阅读 · 0 评论 -
9-1字符数组的传递
%c输出的是单个字符,%s输出的是字符串#include <stdio.h>void print(char d[]){ int i = 0; while (d[i] != '\0') { printf("%c", d[i]); i++; } printf("\n");//让字符数组打印完之后换行 d[0] = d[0] - 32;//将字符数组的首字母改成大写}int main(){ char c[6] = "hello";//数组长度要大于等于6 p原创 2022-04-05 13:11:32 · 372 阅读 · 0 评论 -
外部中断模块
通过外部中断0和外部中断1使led状态取反#include <STC15F2K60S2.h>#include <intrins.h>//外部中断0和1,使用P3^2和P3^3,需将J5的2和3短接//程序要求:// 按下 P32-INT0 引脚对应的按键 S5,L1 状态翻转// 按下 P33-INT1 引脚对应的按键 S4,L2 状态翻转unsigned char i;//用来//1、系统初始化void system_init(){ P2=0XA0;原创 2022-02-21 20:18:16 · 557 阅读 · 0 评论 -
C语言:continue、break
continue:对1到100之间的奇数进行求和#include <stdio.h>int main(){ int i, total; for (i = 1, total = 0; i <= 100; i++) { if (i % 2 == 0) { continue;//提前结束i为偶数的这轮循环 } total = total + i; } printf("total=%d\n", total);}break#include &l原创 2022-01-20 18:17:01 · 491 阅读 · 0 评论 -
C语言:算术运算符、关系运算符与逻辑运算符
一、算术运算符#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>int main(){ int a = 4 + 5 * 2 - 6 / 3 + 11 % 4;//4+10-2+3=15 printf("%d\n",a); scanf("%d", &a); printf("a=%d\n", a);//如果输入1234,输出4321 while (a != 0) { printf("%d", a % 10);原创 2022-01-19 15:09:38 · 2707 阅读 · 0 评论 -
C语言:scanf的使用
目录一、scanf的循环读取1、scanf的一次读取2、加入while循环使scanf能进行循环读取3、由于scanf出错时会返回EOF,故代码改为4、加入rewind清空缓冲区(只适用于vs)5、练习:输入小写字母,输出大写字母二、scanf的混合输入在VS2019集成环境下一、scanf的循环读取1、scanf的一次读取#define _CRT_SECURE_NO_WARNINGS//解决scanf报错问题#include <stdio.h&g.原创 2022-01-18 21:47:40 · 6106 阅读 · 0 评论 -
C语言:printf的使用
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>int main(){ printf("%4.1f\n",22.5);//4表示一共占四个字符,.1表示小数点后面一位小数 printf("%4d\n", 233);//4表示一共占四个字符,默认右对齐 printf("%-4d\n", 233);//4表示一共占四个字符,加符号左对齐 return 0;}结果...原创 2022-01-18 22:00:47 · 814 阅读 · 0 评论