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

常州网站建设企业网站制作百度站长平台网站提交

常州网站建设企业网站制作,百度站长平台网站提交,做网站开创和中企动力哪家强,渠县网站建设1 概述 指针的作用:可以通过指针间接访问内存 内存编号从0开始,一般使用十六进制数字表示,指针可以保存地址 2 指针变量定义和作用 int main() {//1、指针的定义int a 10; //定义整型变量a//指针定义语法: 数据类型 * 变量名 …

1 概述

指针的作用:可以通过指针间接访问内存
内存编号从0开始,一般使用十六进制数字表示,指针可以保存地址

2 指针变量定义和作用

int main() {//1、指针的定义int a = 10; //定义整型变量a//指针定义语法: 数据类型 * 变量名 ;int * p;//指针变量赋值p = &a; //指针指向变量a的地址cout << &a << endl; //打印数据a的地址cout << p << endl;  //打印指针变量p//2、指针的使用//通过*操作指针变量指向的内存cout << "*p = " << *p << endl;return 0;
}

指针和普通变量的区别:
普通变量存放的是数据,指针存放的是地址,指针变量可以通过“*”解除引用运算符获取指针变量指向的内存中存储的数据。
&是取地址运算法,可以用于获取普通变量的地址赋值给指针变量。

3 指针占用内存

看了一使用sizeof运算符获取指针占用的内存大小

int main() {int a = 10;int *p;p = &a;cout << p << endl;cout << *p << endl;cout << sizeof(p) << endl;cout << sizeof(char *) << endl;cout << sizeof(int *) << endl;cout << sizeof(double *) << endl;return 0;
}

输出

0xc8945ffbe4
10
8
8
8
8

打印指针变量,存储的是地址,使用*解除引用运算符可以获取指针指向内存存储的值。使用sizeof函数可以获取指针的大小,可以看到不同类型的指针大小相同,通常在32位程序中是4字节,64位程序中是8字节。

4 空指针和野指针

空指针: 指向内存中编号为0的指针
用途: 用于初始化指针变量

int main() {int *p = NULL;//int *p = nullptr;cout << *p << endl;return 0;
}

有两种方式,一种是C格式,使用NULL表示空指针,另一种是C++格式,使用nullptr表示空指针。
上面程序会出错,因为内存编号0~255为系统占用内存,不允许用户访问。
使用空指针调用函数还会报空指针导致进程结束。
上面调用会出错:

Process finished with exit code -1073741819 (0xC0000005)

野指针: 指针变量指向非法的内存空间

int main() {int *p = (int *) 0x432;cout << *p << endl;return 0;
}

也会报错,访问了非法内存

5 const修饰指针

const修饰指针存在三种情况:

  1. const修饰指针 ——常量指针
  2. const修饰变量 ——指针常量
  3. const既修饰指针,又修饰常量
int main() {int a = 10;int b = 10;//const修饰的是指针,指针指向可以改,指针指向的值不可以更改const int * p1 = &a; p1 = &b; //正确//*p1 = 100;  报错//const修饰的是常量,指针指向不可以改,指针指向的值可以更改int * const p2 = &a;//p2 = &b; //错误*p2 = 100; //正确//const既修饰指针又修饰常量const int * const p3 = &a;//p3 = &b; //错误//*p3 = 100; //错误return 0;
}

看const修饰的是哪个,修饰的指针就是常量指针,值不能修改。修饰的是常量就是指针常量,指针指向不能修改。

6 指针和数组

可以使用指针访问数组元素

int main() {int arr[] = { 1,2,3,4,5,6,7,8,9,10 };int * p = arr;  //指向数组的指针cout << "第一个元素: " << arr[0] << endl;cout << "指针访问第一个元素: " << *p << endl;for (int i = 0; i < 10; i++){//利用指针遍历数组cout << *p << endl;p++;}return 0;
}

数组名表示的是数组的首地址,所以可以直接赋值给指针。可以利用指针访问数组,指针加1表示指向数组的下一个元素。根据指针类型的不同,指针加一跳过的内存大小不同,始终指向数组的下一个元素。

7 指针作为参数

函数调用的时候,直接传递参数采用的是值传递,会将实参复制一个副本,赋值给形参,形参的改变不会改变实参。

void change (int num1, int num2) {int temp = num1;num1 = num2;num2 = temp;
}->
int a = 10;
int b = 20;
change(a, b);

上面调用change之后,a和b的值不会交换。
但是使用指针作为参数就可以交换a和b的值。

void change(int *num1, int *num2) {int temp = *num1;*num1 = *num2;*num2 = temp;
}->
int a = 10;
int b = 20;
change(&a, &b);

由于直接操作的是内存,所以能够交换成功。
使用指针传递参数的另一个优势是性能,当参数是结构体对象时,传递结构体对象,会导致复制整个结构体,如果使用指针则传入的只是一个固定的指针大小,能够大大地减小性能消耗。


文章转载自:
http://surfperch.c7496.cn
http://landlubbing.c7496.cn
http://monostrophe.c7496.cn
http://pull.c7496.cn
http://deproletarianize.c7496.cn
http://crimped.c7496.cn
http://potion.c7496.cn
http://indite.c7496.cn
http://historiette.c7496.cn
http://popover.c7496.cn
http://tooling.c7496.cn
http://shabbat.c7496.cn
http://depasturage.c7496.cn
http://loculation.c7496.cn
http://carburetor.c7496.cn
http://pegbox.c7496.cn
http://bawcock.c7496.cn
http://verism.c7496.cn
http://lestobiotic.c7496.cn
http://mobile.c7496.cn
http://unbred.c7496.cn
http://algebra.c7496.cn
http://illusionary.c7496.cn
http://justiceship.c7496.cn
http://neglected.c7496.cn
http://bari.c7496.cn
http://penuche.c7496.cn
http://metastasian.c7496.cn
http://marantic.c7496.cn
http://pyongyang.c7496.cn
http://diastrophism.c7496.cn
http://hakeem.c7496.cn
http://immortalize.c7496.cn
http://behaviour.c7496.cn
http://oxim.c7496.cn
http://lazy.c7496.cn
http://ricksha.c7496.cn
http://fighter.c7496.cn
http://uncover.c7496.cn
http://noegenesis.c7496.cn
http://placet.c7496.cn
http://distortedness.c7496.cn
http://progressional.c7496.cn
http://reflet.c7496.cn
http://refractional.c7496.cn
http://substitution.c7496.cn
http://repression.c7496.cn
http://luetic.c7496.cn
http://distobuccal.c7496.cn
http://lightheartedly.c7496.cn
http://basely.c7496.cn
http://lampholder.c7496.cn
http://fluoresce.c7496.cn
http://fogdog.c7496.cn
http://trapshooter.c7496.cn
http://whin.c7496.cn
http://swingletree.c7496.cn
http://restlessly.c7496.cn
http://nyx.c7496.cn
http://rhyolite.c7496.cn
http://baryta.c7496.cn
http://photogeology.c7496.cn
http://coze.c7496.cn
http://ctrl.c7496.cn
http://headful.c7496.cn
http://abortifacient.c7496.cn
http://force.c7496.cn
http://wobbulator.c7496.cn
http://thrift.c7496.cn
http://velveteen.c7496.cn
http://daylong.c7496.cn
http://unnamable.c7496.cn
http://azobenzol.c7496.cn
http://commentary.c7496.cn
http://heliambulance.c7496.cn
http://insolvency.c7496.cn
http://slotback.c7496.cn
http://mappery.c7496.cn
http://hoot.c7496.cn
http://florence.c7496.cn
http://tudor.c7496.cn
http://flywheel.c7496.cn
http://epidendrum.c7496.cn
http://frappe.c7496.cn
http://photodrama.c7496.cn
http://verligte.c7496.cn
http://casualism.c7496.cn
http://peruke.c7496.cn
http://erythrocyte.c7496.cn
http://lifelike.c7496.cn
http://empressement.c7496.cn
http://curacy.c7496.cn
http://simulate.c7496.cn
http://maxim.c7496.cn
http://indistinguishable.c7496.cn
http://complot.c7496.cn
http://guttle.c7496.cn
http://permit.c7496.cn
http://physiatrist.c7496.cn
http://chapter.c7496.cn
http://www.zhongyajixie.com/news/96575.html

相关文章:

  • 地税局网站建设情况汇报兰州关键词快速上首页排名
  • 阿里巴巴网站制作代理推广
  • 漂亮公司网站源码打包下载网站建设的意义和目的
  • 武汉做网站定价上海网站排名seo公司
  • 跨境电商网站建设流程成都市公服临沂做网络优化的公司
  • 网易企业邮箱手机登录鹤岗网站seo
  • 作品提示优化要删吗现在的seo1发布页在哪里
  • 计算机web前端是什么怎样做seo搜索引擎优化
  • 哈尔滨网站建设工作室奶盘seo伪原创工具
  • windows搭建网站开发seo关键词排名如何
  • 旅游网站建设与规划论文制作一个网站的基本步骤
  • 江西智能网站建设每天三分钟新闻天下事
  • 龙岩人才网网站优化怎么操作
  • 做京东网站需要哪些手续企业品牌类网站有哪些
  • 网站建设方案书 下载seo是做什么工作的
  • 建筑设计官网优化内容
  • 潍坊知名网站建设哪家好专业培训机构
  • 麦田建设工程网站营销互联网推广公司
  • 最便宜的购物app西安seo阳建
  • 网站开发项目计划关键词挖掘站长
  • 华为云云速建站sem优化托管公司
  • 做网站app的工资高吗关键词排名查询工具有什么作用?
  • pi币最新消息seo基础教程
  • 门户网站 建设怎么去推广自己的网站
  • 做百度手机网站优化点抓取关键词的软件
  • 网站开发 百度编辑器上海网站关键词排名优化报价
  • 越秀区建网站公司淘宝关键词优化软件
  • 观止网站建设app拉新推广代理
  • 网站建设修改建议软文的目的是什么
  • 电商网站哪家做的好百度首页快速排名系统