一 前言 “春城无处不飞花”,在遥远的古代,古人就开始有饮酒作乐的智慧,伴随着“飞花令”的诞生,文学创作者饮酒作乐必须要飞花令助兴了。 bot: 好的,我们可以玩飞花令游戏。 you: 这是飞花令游戏 bot: 对不起,我误解了你的意思。让我们继续玩飞花令游戏吧!请说出下一个含有“月”字的词语或诗句: 回答:“但愿人长久”。 接下去的飞花令你来定吧。 you: 说一个 以鸟为关键词的飞花令游戏 bot: 好的,让我们来一场以鸟为关键词的飞花令游戏。 接下去的飞花令你来定吧。 you: exit 我们可能需要进一步训练这个工具才能让他成为一个飞花令高手。
#include <stdio.h> int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; int* p = &arr[0]; int sz 规避野指针(3):及时将闲置指针设置成NULL #include <stdio.h> int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; int ", *(*(p + i) + j)); } printf("\n"); } } int main() { int arr[3][5] = { {1,2,3,4,5}, {2,3,4,5,6} ,{3,4,5,6,7} }; test(arr, 3, 5); return 0; } 总结:二维数组传参,形参部分可以是数组形式,也可以是指针形式 指针:(十三)二级指针 指针变量也是变量 - 如果结果为正:p1 > p2,返回正数 } int main() { // 定义并初始化一个整型数组 int arr[] = { 1, 3, 5, 7, 9, 2, 4, 6,
char src[] = "Hello"; char dest[10]; memcpy(dest, src, 6); // 复制包括'\0'在内的6个字节 printf("%s\n", dest); char str[] = "OpenAI"; char *p = memchr(str, 'A', 6); if (p) printf("Found at: %s\n", p); // 输出 AI data[4]) a b a b a b g h i \0 (复制data[3]到data[5]) a b a b a b a h i \0 (复制data[4]到data[6] *(data+5) = *(data+3); // data[5] = 'b' → "abababghi" *(data+6) = *(data+4); // data[6] = 'a' → "abababa
本章讨论的是数据⽂件 在以前各章所处理数据的输入输出都是以终端为对象的,即从终端的键盘输入数据,运行结果显示到显示器上。 其实有时候我们会把信息输出到磁盘上,当需要的时候再从磁盘上把数据读取到内存中使用,这里处理的就是磁盘上文件
#include <stdio.h> int main() { int arr[10] = {1,2,3,4,5,6,7,8,9,10}; int i = 0; for(i = 0; i < 10; i 不完全初始化 int arr1[3][5] = {1, 2}; int arr2[3][5] = {0}; (2)完全初始化 int arr3[3][5] = {1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7}; (3)按照行初始化 int arr4[3][5] = {{1,2},{3,4},{5,6}}; 注意 初始化时省略行,但是不能省略列 二维数组的使用 ⼆维数组的下标 其实⼆维数组访问也是使用下标的形式的 C语言规定,⼆维数组的⾏是从0开始的,列也是从0开始的,如下所⽰: int arr[3][5] = {1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7}; 二维数组的输入与输出 #include <stdio.h> int main() { int arr[3][5] = {1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7}; int i = 0;//遍历⾏ //输⼊ for(
人与人交流的是自然语言,如:汉语、英语、日语 那人与计算机交流就得用计算机语言 C语言就是众多编程语言中的一种,是一种底层语言
转义字符是编程中用于表示特殊符号或功能的字符序列,通常以反斜杠(\)开头。例如:\n(换行)、\t(制表符)、\(反斜杠)、"(双引号)等。它们帮助在字符串中插入无法直接输入的字符,增强代码的灵活性和可读性。
data, 5); // data数组被清空 return 0; } 代码练习 #include <stdio.h> int main() { int arr[] = {1,2,3,4,5,6,7,8,9,10
静态变量存储在内存的静态存储区,而不是栈或堆中 使用static关键字定义的变量 void func() { static int count = 0; // 静态局部变量 count++; } 6.
前言 上一篇文章收集飞花令碎片——C语言分支与循环结构(上)已经跟大家全面讲解了分支与循环的基础知识,这一张会通过几个程序设计项目来锻炼逻辑思维能力,难度从难到易,大家可以根据自己的需求去练习 练习一 day); switch(day) { case 1: case 2: case 3: case 4: case 5: printf("⼯作⽇\n"); break; case 6: (1, 2, 6, 24, ...) e += 1.0 / fac; // 加上 1/i! =11=1, sum=1 + (-1)(1/1)=0.0, sign变为1 i=2: fac=12=2, sum=0 + 1(1/2)=0.5, sign变为-1 i=3: fac=23=6, sum=0.5 + (-1)(1/6)≈0.3333, sign变为1 最终结果:1 - 1 + 0.5 - 0.166667 ≈ 0.333333 关键点: 正确处理0!
#mermaid-svg-Yy7US978e1SNa71U {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Yy7US978e1SNa71U .error-icon{fill:#552222;}#mermaid-svg-Yy7US978e1SNa71U .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Yy7US978e1SNa71U .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-Yy7US978e1SNa71U .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Yy7US978e1SNa71U .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Yy7US978e1SNa71U .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Yy7US978e1SNa71U .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Yy7US978e1SNa71U .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Yy7US978e1SNa71U .marker.cross{stroke:#333333;}#mermaid-svg-Yy7US978e1SNa71U svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Yy7US978e1SNa71U .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-Yy7US978e1SNa71U .cluster-label text{fill:#333;}#mermaid-svg-Yy7US978e1SNa71U .cluster-label span{color:#333;}#mermaid-svg-Yy7US978e1SNa71U .label text,#mermaid-svg-Yy7US978e1SNa71U span{fill:#333;color:#333;}#mermaid-svg-Yy7US978e1SNa71U .node rect,#mermaid-svg-Yy7US978e1SNa71U .node circle,#mermaid-svg-Yy7US978e1SNa71U .node ellipse,#mermaid-svg-Yy7US978e1SNa71U .node polygon,#mermaid-svg-Yy7US978e1SNa71U .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Yy7US978e1SNa71U .node .label{text-align:center;}#mermaid-svg-Yy7US978e1SNa71U .node.clickable{cursor:pointer;}#mermaid-svg-Yy7US978e1SNa71U .arrowheadPath{fill:#333333;}#mermaid-svg-Yy7US978e1SNa71U .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-Yy7US978e1SNa71U .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-Yy7US978e1SNa71U .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-Yy7US978e1SNa71U .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-Yy7US978e1SNa71U .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-Yy7US978e1SNa71U .clust
遍历二维数组 #include <stdio.h> int main() { int matrix[2][3] = { {1, 2, 3}, {4, 5, 6}
6、关于VS的scanf的安全性警报问题 先来看下面的一段代码 #include <stdio.h> int main() { int year = 0; printf("请输入年份:
); 功能:在haystack中查找needle,返回子串开始的位置索引,找不到返回-1 代码示例: int pos = strstr("Hello world", "wor"); // pos现在是6
写在前面 在2018年下半年的某一天,偶然观看了《中国诗词大会》节目的飞花令环节。 实现语音版飞花令仅作为兴趣爱好,之前本来是用 Django 完成的,在朋友的安利之下改用 Sanic 重写。 飞花令 整体架构如图所示 ? 架构如上图所示,接下来分享部分技术细节。 最后 以上是关于飞花令应用的总结,总的来说还是挺满意这次实践。 有希望继续改进的同学可以在 github 上 fork 飞花令代码库进行二次开发。
8^0 第2位 8^1 = 8 2 2 * 8^1 第3位 8^2 = 64 3 3 * 8^2 第4位 8^3 = 512 4 4 * 8^3 第5位 8^4 = 4096 5 5 * 8^4 第6位 8^5 = 32768 6 6 * 8^5 第7位 8^6 = 262144 7 7 * 8^6 第8位 8^7 = 2097152 0 0 * 8^7 (3)16进制 十六进制(Hexadecimal 0 unsigned char a = 5; // 0101 unsigned char b = 3; // 0011 unsigned char c = a ^ b; // 0110 (6) 将操作数显式转换为指定类型 操作数类型:任意可转换的类型 sizeof 操作符 sizeof 两种形式: sizeof(type):获取类型的大小 sizeof expr:获取表达式结果类型的大小 6. 5 * 6 / 2; 上⾯⽰例中, * 和 / 的优先级相同,它们都是左结合运算符,所以从左到右执⾏,先计算 5 * 6 , 再计算 / 2 。
2: No such file or directory 3: No such process 4: Interrupted function call 5: Input/output error 6: \n"); } 6. fputc() 向文件写入一个字符。 int fputc(int c, FILE *stream); c:要写入的字符。 stream:文件指针。
这些变量在程序一开始运行时就被分配了,直到程序结束才释放。它们“长命百岁”,但不够灵活。
p->y = 20; return p; // 返回指向动态分配内存的指针 } 返回的指针指向的是堆区内存,而堆区内存不会随着函数的结束而销毁;也可以避免局部变量的生命周期问题 6) int i; // 占 4 字节,按 pack(1) 不再对齐,紧跟在 c1 后,占偏移量 1~4 char c2; // 占 1 字节,偏移量 5 }; // 当前结构体占 6 / 恢复默认对齐方式(通常是 4 或 8) int main() { // 输出结构体 S 的大小 printf("%d\n", sizeof(struct S)); // 输出 6
字节 - 0 到 18,446,744,073,709,551,615 %llu 浮点类型 类型 存储大小 (通常) 有效数字位数 取值范围 (近似) 格式化说明符 float 4字节 (32位) 6- elements = sizeof(arr) / sizeof(arr[0]);//sizeof(arr[0]结果为0 sizeof字符串字面量(重要) sizeof("hello"); // 返回6(