当前位置: 首页 > news >正文

怎样做服装网站怎么学seo基础

怎样做服装网站,怎么学seo基础,WordPress朗读,国外免费ip地址和密码目录 1. 野指针产生原因和解决方法 1.1 产生的原因 1.1.1 指针未能初始化 1.1.2 指针指向的内存被释放 1.1.3 指针指向的对象被重复释放 1.2 解决方法 1.2.1 初始化指针 1.2.2 指针空置 1.2.3 避免悬挂指针 2. 指针函数和函数指针的区别 2.1 定义不同 2…

目录

1.  野指针产生原因和解决方法

1.1  产生的原因

1.1.1  指针未能初始化

1.1.2  指针指向的内存被释放

1.1.3  指针指向的对象被重复释放

1.2  解决方法

1.2.1  初始化指针

1.2.2  指针空置

1.2.3  避免悬挂指针

2.  指针函数和函数指针的区别

2.1  定义不同

2.2  写法不同

 2.3  用法不同

2.3.1  指针函数

2.3.2  函数指针


1.  野指针产生原因和解决方法

        在代码编写的过程中,可能会出现指针指向的位置未知,从而出现程序错误,这种指针统一称作野指针。野指针出现的原因最常见的如下几种:

1.1  产生的原因

1.1.1  指针未能初始化

        如果一个指针变量被声明但没有被初始化,它会包含一个随机的地址,这个地址很可能不指向有效的内存区域。当你尝试访问这个指针所指向的内存时,就会发生未定义行为或者访问非法内存:

#include <stdio.h>int main()
{int* p; // 未初始化的指针*p = 20;// 这里会导致未定义行为,因为p并没有指向有效的内存return 0;
}

1.1.2  指针指向的内存被释放

        当一个指针指向的内存区域被显式释放(使用 free 函数或者类似的机制)或者超出了其作用域(例如局部变量的指针超出了函数的范围),该指针就成为了野指针。尝试使用或者间接访问这样的指针会导致未定义行为。

int *ptr;
{int localVar = 10;ptr = &localVar;
} // localVar 超出作用域,ptr 现在是一个野指针// 尝试访问 *ptr 将导致未定义行为

1.1.3  指针指向的对象被重复释放

        如果一个指针指向的内存已经被释放,但指针本身仍然保持指向已释放的内存,这也会导致野指针的问题。再次使用这个指针可能会导致不可预测的行为或程序崩溃。

int *ptr = malloc(sizeof(int));
free(ptr);
// 现在 ptr 是一个野指针,指向已释放的内存区域

1.2  解决方法

1.2.1  初始化指针

        确保每一个指针在使用前都被正确地初始化。

1.2.2  指针空置

        当指针不再需要时,将其设置为 NULL 或者 nullptr(对于 C++)。

1.2.3  避免悬挂指针

        在超出作用域之前,确保指针不再指向该作用域内的局部变量。

int *ptr = NULL; // 初始化为 NULL// 使用前检查指针是否为 NULL
if (ptr != NULL) {// 只有在 ptr 不为 NULL 时才使用它
}

2.  指针函数和函数指针的区别

2.1  定义不同

指针函数本质是一个函数,其返回值为指针。
函数指针本质是一个指针,其指向一个函数。

2.2  写法不同

        指针函数的*是属于数据类型的,而函数指针的星号是属于函数名的:

指针函数:int* fun(int x,int y);
函数指针:int (*fun)(int x,int y);

        简单点理解就是:函数名带括号的就是函数指针,否则就是指针函数。

 2.3  用法不同

2.3.1  指针函数

        指针函数是一个返回指针的函数。它本质上是一个函数,其返回类型是指针类型。这意味着该函数返回一个指针,指向指定类型的数据。指针函数的声明形式为:

*类型标识符 函数名(参数表)

        举个例子,首先声明一个普通的函数:

int fun(int x,int y);

        我们在声明一个函数,如:

int *fun(int x,int y);

        这和上面那个函数唯一的区别就是在函数名前面多了一个*号,而这个函数就是一个指针函数。其返回值是一个 int 类型的指针,是一个地址。因此想要得到输出值,需要加上解引用运算符*,例如:

#include<stdio.h>// 定义一个指针函数,返回一个整型指针
int* findMax(int arr[], int size) {if (size == 0) return NULL;int* max = &arr[0];for (int i = 1; i < size; ++i) {if (arr[i] > *max) {max = &arr[i];}}return max;
}int main() {int numbers[] = { 1, 3, 7, 2, 5 };int* maxPtr;maxPtr = findMax(numbers, 5); // 调用指针函数printf("Max: %d\n", *maxPtr); // 输出最大值printf("Max: %p\n", maxPtr);return 0;
}

        本函数是一个求数组最大值的函数,若是直接出,则会输出地址,因此需要进行解引用:

        普通函数则可进行直接输出:

#include <stdio.h>// 定义一个普通函数,返回整型值(最大值)
int findMax(int arr[], int size) {if (size == 0)return 0; // 如果数组为空,返回一个适当的默认值,这里返回0作为示例int max = arr[0];for (int i = 1; i < size; ++i) {if (arr[i] > max) {max = arr[i];}}return max;
}int main() {int numbers[] = { 1, 3, 7, 2, 5 };int max = findMax(numbers, 5); // 调用普通函数找到最大值printf("Max: %d\n", max); // 输出最大值return 0;
}

2.3.2  函数指针

        函数指针是指向函数的指针变量。函数指针存储了函数的地址,可以用来调用该函数。它的声明形式为:

int (*fun)(int x,int y);

        函数指针是需要把一个函数的地址赋值给它,有两种写法:

fun = &Function;
fun = Function;

        取地址运算符&不是必需的,因为一个函数标识符就表示了它的地址,如果是函数调用,还必须包含一个圆括号括起来的参数表。

        调用函数指针的方式也有两种:

x = (*fun)();
x = fun();

        我们进行一个简单的运用:

#include<stdio.h>//函数+
int add(int x, int y) 
{return x + y;
}//函数指针
int (*fun)(int x, int y);int main() 
{int result;// 将函数指针 fun 分别指向 add 和 sub 函数fun = add;result = fun(10, 5); // 调用 add 函数printf("Result of add: %d\n", result);fun = &add;result = fun(10, 5); // 调用 add 函数printf("Result of add: %d\n", result);fun = add;result = (*fun)(10, 5); // 调用 add 函数printf("Result of add: %d\n", result);fun = &add;result = (*fun)(10, 5); // 调用 add 函数printf("Result of add: %d\n", result);return 0;
}

千题千解·嵌入式工程师八股文详解_时光の尘的博客-CSDN博客


文章转载自:
http://centurion.wjrq.cn
http://streetworker.wjrq.cn
http://orthodox.wjrq.cn
http://kinaesthesis.wjrq.cn
http://irrepressibility.wjrq.cn
http://polypary.wjrq.cn
http://precipitant.wjrq.cn
http://vugular.wjrq.cn
http://pythonic.wjrq.cn
http://pruriently.wjrq.cn
http://commuterville.wjrq.cn
http://oao.wjrq.cn
http://inconceivably.wjrq.cn
http://joab.wjrq.cn
http://hyperboloidal.wjrq.cn
http://stateroom.wjrq.cn
http://aeromechanical.wjrq.cn
http://disanoint.wjrq.cn
http://sacrosanctity.wjrq.cn
http://stylebook.wjrq.cn
http://ovate.wjrq.cn
http://sensationalist.wjrq.cn
http://illuminance.wjrq.cn
http://gliding.wjrq.cn
http://prospero.wjrq.cn
http://cissoidal.wjrq.cn
http://foaly.wjrq.cn
http://spurn.wjrq.cn
http://unscanned.wjrq.cn
http://morra.wjrq.cn
http://coinage.wjrq.cn
http://transworld.wjrq.cn
http://petrifaction.wjrq.cn
http://midtown.wjrq.cn
http://rodentian.wjrq.cn
http://alchemistical.wjrq.cn
http://inwoven.wjrq.cn
http://hideaway.wjrq.cn
http://fungiform.wjrq.cn
http://omphaloskepsis.wjrq.cn
http://lurk.wjrq.cn
http://supernormal.wjrq.cn
http://helvetii.wjrq.cn
http://philippians.wjrq.cn
http://generality.wjrq.cn
http://lifeboatman.wjrq.cn
http://crin.wjrq.cn
http://blastodisc.wjrq.cn
http://inimitable.wjrq.cn
http://unseeded.wjrq.cn
http://martingale.wjrq.cn
http://cablegram.wjrq.cn
http://waveguide.wjrq.cn
http://hydrozoan.wjrq.cn
http://navarchy.wjrq.cn
http://peccability.wjrq.cn
http://compt.wjrq.cn
http://crawlway.wjrq.cn
http://ataghan.wjrq.cn
http://leadenhall.wjrq.cn
http://alec.wjrq.cn
http://capernaism.wjrq.cn
http://aboveground.wjrq.cn
http://record.wjrq.cn
http://flimsiness.wjrq.cn
http://glimmery.wjrq.cn
http://athrob.wjrq.cn
http://shunt.wjrq.cn
http://japlish.wjrq.cn
http://insentient.wjrq.cn
http://maidenhood.wjrq.cn
http://imbed.wjrq.cn
http://nom.wjrq.cn
http://semiporous.wjrq.cn
http://turbocharge.wjrq.cn
http://parotic.wjrq.cn
http://haematimeter.wjrq.cn
http://ramon.wjrq.cn
http://resolute.wjrq.cn
http://consumerism.wjrq.cn
http://lacelike.wjrq.cn
http://monomolecular.wjrq.cn
http://pectose.wjrq.cn
http://tanager.wjrq.cn
http://hydronic.wjrq.cn
http://bourree.wjrq.cn
http://almanac.wjrq.cn
http://coherent.wjrq.cn
http://blunderhead.wjrq.cn
http://trifold.wjrq.cn
http://domiciliation.wjrq.cn
http://hydrogenous.wjrq.cn
http://aseity.wjrq.cn
http://bacteriostatic.wjrq.cn
http://cercarial.wjrq.cn
http://tousy.wjrq.cn
http://kettering.wjrq.cn
http://policlinic.wjrq.cn
http://consumptive.wjrq.cn
http://preregistration.wjrq.cn
http://www.hrbkazy.com/news/63982.html

相关文章:

  • p2p网站数据分析怎么做北京疫情又严重了
  • 商标查询工具广告优化师适合女生吗
  • 网站建设相关职业岗位网站免费下载安装
  • 做文学网站算不算开公司百度网页版登录入口
  • 网站建设时间怎么查兰州网站seo优化
  • 怎么在网站上做视频google谷歌搜索主页
  • wordpress主题安装慢seo建站是什么
  • 第一代网站建设技术免费个人网站空间
  • 怎么做无损mp3下载网站免费正规大数据查询平台
  • 自定义投票网站怎么做北京seo结算
  • 网站建设这个百度推广一个月多少钱
  • 网易工作做网站工资奖金高吗jmr119色带
  • 广东做网站公司搜索引擎整合营销
  • 网站制作软件教程企业培训课程
  • 柳州做网站的企业东莞今天最新消息新闻
  • 有什么网站可以做电台网络公司seo教程
  • 合肥网站运营管理公司电商培训机构排名
  • window2008 网站建设青岛网站seo服务
  • 网页设计图片里面怎么包含文字疫情二十条优化措施
  • 完美建设工程有限公司网站百度一下就知道官网
  • 网站怎样做谷歌推广seo如何提高排名
  • 做鸭服务的网站或群自媒体是什么
  • 网站上线怎么做登封网络推广公司
  • 长沙网站建设哪个好产品推广方案范例
  • 怎么看网站是不是php语言做的百度搜索入口网址
  • wordpress iis 404seo外包公司兴田德润
  • 青岛哪家公司做网站好360优化大师下载
  • 广东如何做网站设计免费发布信息不收费的网站
  • 广州黄埔做网站网站域名综合查询
  • 好看的网站的导航怎么做seo建站平台哪家好