
C语言
A赵同学_
这个作者很懒,什么都没留下…
展开
-
出现野指针的几种情况
什么是野指针: 野指针就是指针指向的位置是未知的(随机的、不正确的、未明确限制的)。 野指针1:指针变量的值未被初始化 如果指针声明在全局变量区,那么未初始化的指针缺省为空。 如果指针声明在栈区,那么该指针将随意指向一个地址空间。 void test() { int* ptr; //野指针,编译器报错 if (ptr != NULL) { } } 野指针2:指针所指向的地址空间已经被free或delete 在堆上m...原创 2021-09-26 10:31:45 · 1242 阅读 · 0 评论 -
指针与结构体的应用
指针强转为结构体,数组—>结构体成员赋值 typedef struct Register {//寄存器 int register1; int register2; int register3; int register4; }tregister; void test() { int Array[] = { 1,0,1,1 }; tregister* p = (tregister*)Array; //将 数组指针 强转为 结构体型指针 .原创 2021-09-14 13:38:54 · 196 阅读 · 0 评论 -
指针与函数——函数指针与指针函数
1、函数指针:指向函数的指针变量 int func(int a); int (*f)(int a); f = &func; 函数指针应用场景:回调 调用别人提供的 API 函数,称为Call; 如果别人的库里面调用我们的函数,就叫Callback。 //库函数qsort排序函数定义 void qsort(void* base, //void*类型,代表原始数组 size_t nmenb, //size_t类型,代表数据数量 size_t size, //size_t类型,代原创 2021-09-14 13:24:16 · 146 阅读 · 0 评论 -
数组指针和指针数组
数组指针:指向一维数组的指针,也称为行指针 int a[3][4]; int (*p)[4]; //数组指针,指向含4个元素的一维数组 p = a; //指向二维数组首地址,a[0]或者&a[0][0] p++; //指向行a[1][] 指针数组:一个数组,数组的元素存储的是指针变量 void test() { int a[2][2] = { 1,2,3,4 }; //二维数组 int* p[2]; //一维数组存放2个指针变量 ...原创 2021-09-14 10:43:34 · 102 阅读 · 0 评论 -
函数传参的几种形式
函数传参的几种形式: 调用类型 描述 传值调用 该方法把参数的实际值赋值给函数的形式参数。在这种情况下,修改函数内的形式参数对实际参数没有影响。 指针调用 该方法把参数的地址赋值给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。 引用调用 该方法把参数的引用赋值给形式参数。在函数内,该引用用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。 double cylinder(double r, d.原创 2021-09-14 09:58:07 · 285 阅读 · 0 评论