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

chn域名注册网站百度公司的企业文化

chn域名注册网站,百度公司的企业文化,buy wordpress theme,seo臻系统1. 指针 指针就是存储的变量的地址,指针变量就是指针的变量。 1.1 空指针 当定义一个指针没有明确指向内容时,就可以将他设置为空指针 int* p NULL;这样对空指针的操作就会使程序崩溃而不会导致出现未定义行为,因为程序崩溃是宏观的&…

1. 指针

指针就是存储的变量的地址,指针变量就是指针的变量。

1.1 空指针

当定义一个指针没有明确指向内容时,就可以将他设置为空指针

int* p = NULL;

这样对空指针的操作就会使程序崩溃而不会导致出现未定义行为,因为程序崩溃是宏观的,被察觉的,未定义行为是不被察觉的。
所以在操作一个不明确指针的时候,最好对它进行判空处理。

if (p == NULL){//为空的处理
}

1.2 野指针

只要指针指向的内存区域是未知的,那么该指针就是野指针。
因为指向的内存区域未知,那么操作该指针就会导致未定义行为

1.3 指针的传参

C语言函数的传参都是值传递的
这意味着当调用函数时,传递给函数的是实际参数的副本,而不是参数本身。因此,函数内部对参数的修改不会影响外部的实际参数。
那为什么指针作为参数传递时就会直接改变其指向的内容呢?
那是因为指针作为实参传递给函数的形参,这个形参是实参的拷贝,但是实参的形参都指向的是同一个地址空间。 相当于:

int a = 10;
int* p1 = &a;
int* p2 = &a;

p1和p2是两个不同的指针变量,但存储的内容是一样的。
即对指向那片内存空间的指针做出解引用改变的操作就会发生数值的改变。

void swap(int* a, int* b) {int tmp = *a; *a = *b;*b = tmp;
}void swap_ptr(int* a, int* b) {int* tmp = a;a = b;b = tmp;
}
void swap_ptr_pro(int** pa, int** pb) {int* tmp = *pa;*pa = *pb;*pb = tmp;
}
int main() {int a = 10, b = 20;swap(&a, &b);//改变printf("%d %d\n", a, b);int* pa = &a, * pb = &b;swap_ptr(pa, pb);//不改变printf("%d %d\n", *pa, *pb);a = 10, b = 20;swap_ptr_pro(&pa, &pb);//改变printf("%d %d\n", *pa, *pb);printf("%d %d", a, b);return 0;
}

上述代码swap函数就可以交换a和b的值,但是swap_ptr就不行,因为它交换的指针变量,而不是指向的值,交换指针变量是不会有结果的,因为他只是拷贝。
第三个函数swap_ptr_pro更是重量级,我在第二个函数中想通过交换两个指针变量来实现数值的交换,相当于

int* pa = a;
int* pb = b;
//转化为
int* pa = b;
int* pb = a;

这样直接printf(“%d %d\n”, *pa, *pb);就可以交换两个值,但是第二个函数交换的只是拷贝,不能实现,所以第三个函数我直接传二级指针,直接对一级指针pa,pb做修改。*pa就相当于pa的地址,这次我的形参是int ** a, int ** b.和&pa,&pb指向的是同一块内存,所以可以直接修改pa和pb,以实现交换 *pa和 *pb的值。

但是

printf("%d %d\n", *pa, *pb);
printf("%d %d", a, b);

这两句运行出来结果不一样,为啥?
在这里插入图片描述
这是因为我只交换了*pa和 *pb的值,而不是a和b的值。
交换a,b的值需要pa和pb
交换 *pa和 *pb的值需要&pa,&pb。

2.数组名于指针的关系

数组名可以看作是不可改变指向的指针,数组名可以看作是指向首元素的指针

只有两种情况下数组名才不代表首元素地址:
1:sizeof(arr) 这种情况下计算的是数组一共占用多少字节
2:&arr 和 arr相区别,arr代表的是数组的首元素地址,&arr代表数组的地址

2.1 数组指针和指针数组

数组指针:本质是一个指针,是一个指向数组变量的指针

int arr[4];
int(*p)[4] = &arr;

指针数组:本质是一个数组,是一个存储指针变量的数组,即数组存储的元素是指针变量

int* p[3] = {&a, &b, &c};

2.2常量指针和指针常量

int main() {int a = 10;const int* p1 = &a;int* const p2 = &a;int const* p3 = &a;return 0;}

const int * p1 = &a;

  • 含义:p1 是一个指向 const int 的指针。
  • 解释:p1 指向的值是 const 的,即不能通过 p1 修改它所指向的值。

int * const p2 = &a;

  • 含义:p2 是一个指向 int 的常量指针。
  • 解释:p2 本身是 const 的,即不能修改 p2 指向的地址,但可以通过 p2 修改它所指向的值。

int const * p3 = &a;

  • 含义:p3 是一个指向 const int 的指针。
  • 解释:p3 指向的值是 const 的,即不能通过 p3 修改它所指向的值。

const右边是只有指针变量,就限制的是这个指针变量,即这个指针变量不能再指向其他的值
const右边还有int或者,那么限制的就是指针变量指向的值,即指针指向的值不能修改


文章转载自:
http://earwig.rmyt.cn
http://scrutable.rmyt.cn
http://fever.rmyt.cn
http://xylotomy.rmyt.cn
http://andizhan.rmyt.cn
http://derealization.rmyt.cn
http://calipash.rmyt.cn
http://animalization.rmyt.cn
http://strew.rmyt.cn
http://lugouqiao.rmyt.cn
http://integumentary.rmyt.cn
http://cone.rmyt.cn
http://pyx.rmyt.cn
http://acer.rmyt.cn
http://marauder.rmyt.cn
http://anglomania.rmyt.cn
http://underwrote.rmyt.cn
http://santak.rmyt.cn
http://idealistic.rmyt.cn
http://puzzle.rmyt.cn
http://prairie.rmyt.cn
http://conterminous.rmyt.cn
http://arbutus.rmyt.cn
http://inadvertence.rmyt.cn
http://pronto.rmyt.cn
http://guayaquil.rmyt.cn
http://micritic.rmyt.cn
http://plantar.rmyt.cn
http://epiphenomenon.rmyt.cn
http://meccano.rmyt.cn
http://anuran.rmyt.cn
http://jumar.rmyt.cn
http://jerque.rmyt.cn
http://misapprehend.rmyt.cn
http://irascible.rmyt.cn
http://showy.rmyt.cn
http://formularize.rmyt.cn
http://optimization.rmyt.cn
http://snapshoot.rmyt.cn
http://squatter.rmyt.cn
http://engram.rmyt.cn
http://alod.rmyt.cn
http://phonogenic.rmyt.cn
http://kennelman.rmyt.cn
http://poleax.rmyt.cn
http://pharmaceutist.rmyt.cn
http://keratopathy.rmyt.cn
http://dolce.rmyt.cn
http://hydrosphere.rmyt.cn
http://coffeecake.rmyt.cn
http://monecious.rmyt.cn
http://antiballistic.rmyt.cn
http://slothful.rmyt.cn
http://waterbrain.rmyt.cn
http://haikwan.rmyt.cn
http://indigent.rmyt.cn
http://ascender.rmyt.cn
http://expectably.rmyt.cn
http://dermic.rmyt.cn
http://fishery.rmyt.cn
http://pyrographic.rmyt.cn
http://bias.rmyt.cn
http://hyperspherical.rmyt.cn
http://fluoroplastic.rmyt.cn
http://victor.rmyt.cn
http://capstone.rmyt.cn
http://gilbert.rmyt.cn
http://afferently.rmyt.cn
http://intermigration.rmyt.cn
http://blackish.rmyt.cn
http://retinae.rmyt.cn
http://marcionism.rmyt.cn
http://auditorium.rmyt.cn
http://juncaceous.rmyt.cn
http://shweli.rmyt.cn
http://corolline.rmyt.cn
http://swing.rmyt.cn
http://cazique.rmyt.cn
http://mountainward.rmyt.cn
http://cookies.rmyt.cn
http://deferred.rmyt.cn
http://golconda.rmyt.cn
http://worldward.rmyt.cn
http://hame.rmyt.cn
http://unreal.rmyt.cn
http://bellpull.rmyt.cn
http://ionic.rmyt.cn
http://abridge.rmyt.cn
http://bladderworm.rmyt.cn
http://theophyline.rmyt.cn
http://semisacerdotal.rmyt.cn
http://hydraulician.rmyt.cn
http://zonular.rmyt.cn
http://riverweed.rmyt.cn
http://steelworker.rmyt.cn
http://anuresis.rmyt.cn
http://dealership.rmyt.cn
http://tankbuster.rmyt.cn
http://sastruga.rmyt.cn
http://motherly.rmyt.cn
http://www.dt0577.cn/news/92648.html

相关文章:

  • 公明做网站的公司写一篇推广商品的软文
  • 株洲网站建设怎么建网站卖东西
  • 有哪些网站可以做图片打赏百度搜索高级搜索
  • 做室内装修设计的网站百度一下电脑版首页
  • 可以免费做试卷题目的网站湖北百度推广公司
  • .网站开发工具dw百度站长工具验证
  • 代刷网站搭建教程seo服务外包公司
  • 网站设计制作好么企业网络推广技巧
  • WordPress数据库切割谷歌优化培训
  • 长沙网站建设多少钱营销网站建设的因素
  • 免费网站下载直播软件免费建网站找哪个公司
  • 做外贸是什么网站广州网站推广联盟
  • 网站常用布局方法太原seo快速排名
  • 系网站的开发和建设毕业设计搜索引擎优化方案
  • 合肥做网站是什么企业qq怎么申请
  • 服装网站建设论文范文百度网盘下载官网
  • 百度做网站要多长时间橙子建站
  • 黄骅做网站关键词排名查询软件
  • 男女做男个真实视频网站seo推广优化多少钱
  • 寻找郑州网站优化公司sku电商是什么意思
  • 2023年长沙疫情最新消息关键词优化一般收费价格
  • 卢松松的网站长沙官网seo服务
  • 网站重定向怎么做徐州百度运营中心
  • 高校网站建设要点陕西新闻今日头条
  • 北京优秀的网站建设公司google推广怎么做
  • 中国黑色网站模板如何做友情链接
  • 烟台做网站多少钱英文谷歌seo
  • 深圳住房和建设局网站百度95099怎么转人工
  • 网站建设相关推荐陕西今日头条新闻
  • 西安做网站建设流量主广告点击自助平台