2018.1.27
更新 2026.7.23 C-lang 210 字· 1 分钟 什么是预处理 预处理一般是指在程序源代码被转换为二进制代码之前,由预处理器对程序源代码文本进行处理,处理后的结果再由编译器进一步编译。
预处理功能主要包括宏定义,文件包含,条件编译三部分
宏定义 简单宏: #define 标识符 字符序列 #define FALSE 0 #define NAME "LUODAOYI" #define __IN #define …
2018.1.25
更新 2026.7.23 数据结构 890 字· 2 分钟 实现思想 :通过指针把要元素串起来 简单结构图 struct Student { char name[10]; int score; } struct Node { Student Element; Node* next; } 每一个节点包含此节点信息和下一个节点的指针
有点:插入删除方便
缺点:查找麻烦
基本元素实现 //方法/函数 int …
2018.1.21
更新 2026.7.23 CPP 988 字· 2 分钟 封装 C语言和C++语言的区别 C++是对C的补充扩展,C原有的语法C++都支持,并在此基础上扩展了一些新的语法:
继承、封装、多态、模板等等
结构体可以作为参数传递吗 struct Student { int a; int b; int c; int d; } //分析这个函数是如何传递参数的 int Plus(student s) { return …
2018.1.20
更新 2026.7.23 C-lang 389 字· 1 分钟 函数调用约定 就是告诉编译器:怎么传递参数,怎么传递返回值,怎么平衡堆栈
int method(int x,int y) { return x+y; } //调用 method(1,2); 常见的几种调用约定: 调用约定 参数压栈顺序 平衡堆栈 __cdecl 从右至左入栈 调用者清理栈 __stdcall 从右至左入栈 自身清理堆栈 __fastcall …
2018.1.18
更新 2026.7.23 C-lang 822 字· 2 分钟 指针数组的定义 char arr[10]; //10 char char* arr[10]; //10 指针(char*) Point* arr[10]; //10 指针(Point*) int******** arr[10]; 指针数组的赋值 char* a = "Hello"; char* b = "World"; //方式1: char* …
2018.1.17
更新 2026.7.23 C-lang 136 字· 1 分钟 探测结构体指针的特性 struct Point { int x; int y; } ++、– 加法与减法 指针相减 使用结构体指针 //创建结构体 Point p; p.x=10; p.y=20; //声明结构体指针 Point* ps; //为结构体指针赋值 ps = &p; //通过指针读取数据 printf("%d \n",ps->x); //通过指针 …
2018.1.17
更新 2026.7.23 C-lang 144 字· 1 分钟 一级指针和多级指针 int i =100; int* p1 = &i; int** p2 = &p1; int*** p3 = &p2; int**** p4 = &p3; int***** p5 = &p4 int****** p6 = &p5; int******* p7 = &p6; int****** px1 = *(p7); int***** …
2018.1.15
更新 2026.7.23 C-lang 302 字· 1 分钟 字符串的几种表示方式有什么区别? char str[6] = {"A","B","C","D","E","F"}; //"\0" 或者0 --堆栈中 局部变量 char str[] = "ABCDE"; //编译器末尾填0 常量区 char* str= "ABCDE"; //常量区 //打印 printf("%s \n",str); //字符串打印时 遇到 …
2018.1.14
更新 2026.7.23 C-lang 60 字· 1 分钟 基本类型参数传递 int x =1; void plus(int p) { p = p+1; } printf("%d \n",x); //x的值是多少? 数组作为参数 编写一个函数,能够打印任意整形数组的值
void PrintArray(int arr[],int nLength) {
2018.1.12
更新 2026.7.23 C-lang 221 字· 1 分钟 “*”的几种用途 乘法运算符
int x = 1; int y = 2; int z = x * y;
定义新的类型
char x; char* x;
取值运算符
指针类型的变量 int* a =(int*)1; printf("%x \n",(a +1)); 10: int a =(int*)1; 00401028 mov dword ptr …
2018.1.12
更新 2026.7.23 C-lang 273 字· 1 分钟 &符号是取地址符,任何变量都可以使用&来获取地址,但不能用在常量上
struct Point { int x; int y; }; char a; short b; int c; Point p; printf("%p %p %p %p \n",&a,&b,&c,&p); printf("%x %x %x %x \n",&a,&b,&c,&p); …
2018.1.10
更新 2026.7.23 C-lang 893 字· 2 分钟 C语言14 指针类型 指针是C语言中的一种数据类型,
定义带 *类型的变量 char x; char* x; short y; short* y; int z; int* z; float f; float* f; double d; double* d; Student st; Student* st; 总结:
任何带有*的变量类型的标准写法:变量类型* …
2018.1.10
更新 2026.7.23 linux 494 字· 1 分钟 官方教程有问题
这里总结下,省的下次又不会配了
配置 ipv6 block 打开 https://console.online.net/en/network/ 创建子网
配置 仓储地址 编辑 sources.list
sudo vim /etc/apt/sources.list 在末尾增加dhcp6的源地址
#DHCP6 Client deb …
2018.1.8
更新 2026.7.23 CSharp 约 2.1k 字· 5 分钟 上周又遇到了坑爹问题,具体表现为 服务端接口全部调用失败。
排查日志发现,有大量的 错误日志为
System.Net.Http.HttpRequestException: 发送请求时出错。 ---> System.Net.WebException: 无法连接到远程服务器 ---> System.Net.Sockets.SocketException: 通常每 …
2018.1.7
更新 2026.7.23 C-lang 219 字· 1 分钟 分析结构体大小 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 struct S1 { char c1; double d; char c2; char c3; }; struct S2 { char c1; char c2; char c3; double d; }; struct S3 …
2018.1.7
更新 2026.7.23 C-lang 363 字· 1 分钟 结构体数组的定义 类型 变量名[常量表达式]; //定义结构体类型 struct stStudent { int Age; int Level; } //定义结构体变量 struct stStudent st; //定义结构体数组 struct stStudent arr[10]; //或者 stStudent arr[10]; 结构体数组初始化 …
2018.1.7
更新 2026.7.23 C-lang 810 字· 2 分钟 #include char x; short y; int check() { x =1; y=2; return 0; } int main(int argc, char* argv[]) { check(); system("pause"); return 0; } //上述代码中 check 函数的反汇编 13: x =1; 00401038 C6 …
2018.1.3
更新 2026.7.23 C-lang 603 字· 2 分钟 思考:
当需要一个容器能够存储1个字节,你会怎么做? //char
当需要一个容器能够存储4个字节,你会怎么做? //int
当需要一个容器能够存储100个2个字节的数据,你会怎么做? //short arr[100]
当需要一个容器能够存储5个数据,这5个数据中有1字节的,2字节的有10字节的。。。你会怎么做??
2018.1.3
更新 2026.7.23 C-lang 751 字· 2 分钟 多维数组的定义 比如一个班有5个组,每个组有9个人
int arr[45] 或者 intarr[5*9] 或者 int arr[5][9]
比如一个县有5个学校,每个学校有3个年级,每个年级有4个班,每个班有5个组,每个组有9个人
int arr[53459] 或者int arr[5][3][4][5][9] int arr[5][3][4][5][9] , …
2018.1.1
更新 2026.7.23 C-lang 846 字· 2 分钟 数组的定义 数组定义的格式:
数据类型 变量名[常亮]; //为什么不能使变量? //因为在声明的时候 编译器需要知道数组的长度,分配相应大小的内存 数组的初始化 方式1:
int arr[10] = {0,0,0,0,0,0,0,0,0,0};
方式2:
int arr[] = {1,2,3,4,5,6,7,8,9,10};
对应汇编
#include …