随笔分类 - 软件技术
编程语言,计算机软件相关
摘要:用 c 语言把链表的基本操作实现了一遍,节点数据的信息是「编号」、「姓名」和「年龄」,实现的功能有「链表的创建」「链表初始化」、「插入节点」、「链表的遍历」、「链表的销毁」、「查询节点」、「删除节点」,这里我就把这些函数贴在这里,做一个笔记,以后也可以查看。 定义数据结构: typedef stru
阅读全文
摘要:这个顺序表是使用数组来实现的,顺序表的插入、删除、遍历等操作,下面是 c 语言的完整实现代码: #define _CRT_SECURE_NO_WARNINGS //(放在最前面) #include<stdio.h> #include <string.h> #include <stdlib.h> st
阅读全文
摘要:这里使用int fputc(int ch, FILE *fp) 和 int fgetc(FILE *fp) 进行文本文件的读取和复制。 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int fbcopy(FILE *fpdest, FILE *f
阅读全文
摘要:1. 常对象只能调用常成员函数,不能调用普通成员函数. 因为常成员函数是不能改变数据成员的值的,如果能够调普通成员函数,就相当于能够改变数据成员的值了,因为普通成员函数是可以改变数据成员的值的,所以不能调用普通成员函数。 2. 常指针和常引用都只能调用对象的常成员函数. 上面两个本质上的意思是一样的
阅读全文
摘要: 对象赋值语句: 对象1 = 对象2 注意的地方: 对象的类型必须相同。 两个对象之间的赋值,只是数据成员的赋值,而不对成员函数赋值。不同对象的成员函数占有不同的存储空间,而不同对象的成员函数是占用同一个函数代码段,无法对它们赋值。 当类中有 ++ 指针 ++ 时,需要进行深拷贝。 构造函数: 构
阅读全文
摘要: 指针数组 指针数组的理解: 指针数组顾名思义是指针组成的数组, 组成元素是指针变量。 字符串初始化指针数组: #include<stdio.h> int main(void) { char *a[3] = { "hello", "world", "good" }; // 定义指针数组a[],并对
阅读全文
摘要: 面向对象程序设计包括:类的声明部分,类的使用部分。 结构, 联合和枚举类 c++ 中他们都是类型名, 和 c 语言不同: enum Bool{FALSE, TRUE}; struct String { char *str; int length; }: union Number { int i;
阅读全文
摘要: 静态数据成员 格式: static 数据类型 数据成员 如: static float sum; 静态数据成员为所有同类对象所共享, 属于类对象的集合, 不属于某一对象, 可以用类名访问静态数据成员: 类名::静态数据成员 如: float Student::sum = 0.0; 访问静态数据成
阅读全文
摘要:#include<stdio.h> #include<string.h> int main(void) { char a[6]; printf("input Max6 char:"); fgets(a, 6, stdin); // fgets 应该把 enter 键也输入进去了 //printf("
阅读全文
摘要:sizeof 是个运算符,不是一个函数。 #include<stdio.h> int main(void) { int a = 9; printf("%d\n", sizeof(a)); //经测试可以直接用变量 printf("%d\n", sizeof(int)); printf("避免未引用
阅读全文
摘要:#include <stdio.h> int main(void) { char a[20]; printf("请输入一个字符串:"); scanf_s("%s", a, 20); printf("您输入的是:%s\n", a); return 0; } 输出: 请输入一个字符串:abcdefg 您
阅读全文
摘要:#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main(void) { long num; long sum = 0l; _Bool is_input_good; printf("请输入一个整数(q退出):"); is_input_goo
阅读全文
摘要:句柄是一个指向指针的指针。 一个指向指针的指针保存的是另一个指针的地址,我们可以通过第一个指针来找到另一个指针,然后通过另一个指针访问到具体的数据。 Windows 需要经常在物理内存和虚拟内存之间来回移动数据。数据被移动意味着他的地址发生变化,如果我们还用之前的地址来访问它,那么肯定是会出错的。如
阅读全文
摘要:结构体通过属性访问修改的时候会出现以下编译错误: ▲ 错误提示。 结构体不能像类一样去操作,问题可能是因为:结构体是值类型的原因。 试试结构体整体赋值。 ▲ 结构体整体赋值,不会编译错误。 这个现象不能复现了?还没弄清什么原因。下面是可以运行输出,而不报错: using System; using
阅读全文
摘要:结构就是几个数据组成的数据结构,它与类共享几乎所有相同的语法,但结构比类受到的限制更多。 结构是一种值的类型,通常用来封装一组相关的变量,结构中可以包括构造函数、常量、字段、方法、属性、运算符、事件和嵌套类型等。但如果要同时包括上述几种成员,则应该考虑使用类。结构实际是将多个相关的变量包装成为一个整
阅读全文
摘要:ListView 控件简单使用。 ▲ 简单样式 listView控件名:listView_SerailNum。 this.listView_SerailNum.FullRowSelect = true; ColumnHeader cameraName = new ColumnHeader(); ca
阅读全文
摘要:引用类型作为值类型传递,形参和实参其实是两个指针,只不过指向的是同一块内存。新new一个对象时,它们两的联系就被切断了,指向了不同的内存块。 引用类型作为引用参数,此时的形参其实是实参的一个别名,它们两个其实是一个指针,新new一个对象时,指向的还是同一内存块,因为它们本身就是同一个指针。 两种情况
阅读全文
摘要:扩展方法的 3 个要求: 声明扩展方法的类必须声明为 static; 扩展方法本身必须声明为static; 扩展方法第一个参数类型前一定要包含关键字 this。 using System; namespace ExtensionMethods { sealed public class MyMeth
阅读全文
摘要:▲ 运行截图 两个注意点 报错:DataGridView 控件中至少有一列没有单元格模板 解决方法: 一个小误区,你看看设计窗体生成的代码,DataGridView 的列不是 GridViewColumn 而是 DataGridViewTextBoxColumn 你只要添加这个类型的对象就可以了,我
阅读全文
摘要:直接用明文文本的方式保存对象信息不是非常科学,现在用二进制序列化的方式来保存。 这里要先增加命名空间:using System.Runtime.Serialization.Formatters.Binary;,还要给实体类增加序列化标识特性。 通过分层设计来实现: 实体类 Student.cs: u
阅读全文