随笔分类 - 编程语言学习笔记 / C
C/C++语言学习笔记
摘要:基本介绍: C 标准库 – <stdio.h> | 菜鸟教程 (runoob.com) 输入(fread)和输出(fwrite): 二进制文件:图片、视频、音频等。 小案例,把内容输出到屏幕: 有关输入输出的函数: 1.getchar()和putchar() 实例(读取一个单一的字符): 1 #in
阅读全文
摘要:例子引入: 从中可得知,学生和老师的前四项信息相同,唯有第五项,学生是成绩,老师是教学科目。 如果采用传统结构体,会造成空间的浪费,比如学生采用score,但是course也会占用相应的字节(尽管不调用,但是占了内存空间) 若定义两个结构体分别保存学生和老师的信息,一旦数据多起来,就会有多个结构体类
阅读全文
摘要:目的:为了解决存储同一个对象拥有不同类型属性的问题。 声明结构体: 关于成员: 总的来说: 1.结构体成员==结构体包含的变量 2.允许结构体内再嵌套系欸沟通 成员的注意事项和细节: 关于第三点: 运行上面的程序会异常终止! 小例子: 结构体与结构体变量的关系: 其中,成员内包含了:名字、年龄、颜色
阅读全文
摘要:在C中,不同数据在内存中分配说明: 动态内存分配的相关函数: void *只是提供一个纯地址,不指向任何数据,如下图的*p3 void指针类型: 即指针类型为void,不能用*p的方式来取得这个p所指向的变量值,因为它本身就是个纯地址。 a本身是个int整数 这里把a的纯地址赋值给了p3 这里是把i
阅读全文
摘要:重新回顾指针: C语言指针笔记01 - Morning枫 - 博客园 (cnblogs.com) &ptr 输出指针变量ptr的地址 ptr 输出指针变量ptr保存的地址(一个十六进制的地址,若输出采用%d,则输出一个整数)//字符串自身的地址就是它本身的值 *ptr 输出指针变量ptr保存的地址的
阅读全文
摘要:1 #include <stdio.h> 2 3 void main(){ 4 int sum = 0; 5 int i = 0; 6 for(i = 0; i < 10; i++){ 7 sum += i; 8 printf("\ni = %d", i); 9 printf("\nsum = %d
阅读全文
摘要:首先了解定义和语法: 用法1——先定义再初始化 入门案例: 同时分析它的内存布局: 内存布局如下: 代码如下: 1 #include <stdio.h> 2 3 void main(){ 4 int a[4][6]; //表示一个4行6列的二维数组,此时数组里面全是垃圾值,需要初始化 5 int i
阅读全文
摘要:案例1): 1 #include <stdio.h> 2 3 int seqSearch(int arr[], int arrLen, int val){ //定义一个数组,一个数组长度,目标值 4 for (int i = 0; i < arrLen; i++){ 5 if(arr[i] == v
阅读全文
摘要:冒泡排序: 案例: 分析: 第一轮排序的代码: 1 #include <stdio.h> 2 3 void main(){ 4 int arr[] = {3,9,-1,10,-2}; 5 int temp = 0; 6 for (int i = 0; i < 4; i++){ 7 if (arr[i
阅读全文
摘要:1 #include <stdio.h> 2 #include <string.h> 3 4 int main(){ 5 char str1[12] = "Hello"; 6 char str2[12] = "World"; 7 char str3[12]; 8 int len; 9 strcpy(
阅读全文
摘要:这种情况下系统会默认加\0 1 #include <stdio.h> 2 #include <string.h> 3 4 void main(){ 5 char greenting[] = "Hello"; 6 int i; 7 int len = strlen(greenting); 8 prin
阅读全文
摘要:注意事项: 关于第三点: 后面?的表示垃圾值或是无用值,反正不知道 关于第四点: 数组已经满了,没有空间放结束标志\0了(空间足够的时候系统会自动给你家\0),因此输出有可能是abc,也有可能是abc+一堆乱码,扩大数组即可解决 因此输出也可能是乱码。
阅读全文
摘要:1. 1 #include <stdio.h> 2 3 void main(){ 4 char word[26]; 5 for (int i = 0; i < 26; i++){ 6 word[i]='A'+i; 7 } 8 9 for (int i = 0; i < 26; i++){ 10 pr
阅读全文
摘要:其中,a是数组名,类型为int,[5]是大小,即a数组最多存放五个int类型的数据 1.数组名代表该数组的首地址,即a[0]的地址 2.数组的各个元素是连续分布的,如:a[0]地址为0x1123,则a[1]的地址为0x1123+int的字节数(通常是4),即0x1123+4=0x1127,其余类推即
阅读全文
摘要:预处理命令: 预处理在编译前就执行了!! 快速入门小案例: 1 #include <stdio.h> 2 #if _WIN32 3 #include <windows.h> 4 #elif __linux__ 5 #include <unistd.h> 6 #endif 7 8 int main()
阅读全文
摘要:常用sprintf函数,用于其他类型转字符串: 例子: 简单理解一下sprintf的用法即可 注意,其中 a和b之间会输出空格,因为%d %d之间有空格,他们之间有什么,最后输出就有什么,如:%dhhh%d,则输出:a的值hhhb的值 小数点也算位置 字符串转其他类型,需要调用新的头文件: 关于at
阅读全文
摘要:常用三类系统函数:1)字符串;2)时间;3)数学 1)头文件<string.h>,找C标准库参考手册看即可,里面包含众多 C 标准库 – <string.h> | 菜鸟教程 (runoob.com) 此处提供一个链接仅供参考。 例子: #include <stdio.h> #include <str
阅读全文
摘要:基本介绍: 对于局部变量来说: 对于第三点,有: 此时调用 输出如下: n=10 n++=11 n=10 n++=11 如果再次调用一次 会输出: n=10 n++=11 n=11 n++=12 取出fn_static()进行分析 第一次执行fn_static(),会执行static int n =
阅读全文
摘要:说明: 例子: 形参也会被视为当前函数的一个局部变量 如int f1(int n) 其中的n视为f1函数的局部变量 在函数外部定义的变量称之为全局变量,作用域为整个程序 当形参(局部变量)和全局变量同名,会优先使用局部变量(编译器就近原则) 3) 4)通常全局变量会放在一个头文件(xx.h)内 注意
阅读全文