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

昌江黎族自治县网站建设_网站建设公司_定制开发_seo优化

网站怎么上传网站吗,购物网站模板代码下载,100m的网站 数据库,排名优化百度什么是指针#xff1a; 指针是一种特护的数据类型#xff0c;使用它可以定义指针变量#xff0c;指针变量存储的是整型数据#xff0c;代表内存的编号#xff0c;通过这个编号可以访问到对应内存。为什么使用指针 1、函数与函数之间是相互独立的#xff0c;但是有些时候…什么是指针 指针是一种特护的数据类型使用它可以定义指针变量指针变量存储的是整型数据代表内存的编号通过这个编号可以访问到对应内存。为什么使用指针 1、函数与函数之间是相互独立的但是有些时候需要共享变量传参是单向值传递全局变量容易命名冲突使用数组还需要传递长度函数的命名空间是相互独立的但是地址空间是同一个所以指针可以解决这个问题 2、由于函数传参是值传递内存拷贝对于字节数较多的变量值传递的效率较低如果传递的是变量的地址只需要传递4|8字节根据32|64位决定 3、堆内存无法取名它不像stack、bss、data让变量名与内存建立联系只能使用指针来记录堆内存的地址编号从而使用该堆内存。如何使用指针 定义 类型* 变量名_p; int* p;1、由于指针变量与普通变量的用法上有很大的区别为了以示区分建议在变量名后面加上_p2、指针的类型表示该指针变量存储的是什么类型变量的地址指针的类型决定了可以通过指针变量访问的字节数3、一个*只能定义一个指针变量int a1,a2,a3;int* p1,p2,p3;//p1指针p2,p3是intint *p1,*p2,*p3;//p1,p2,p3都是指针变量4、指针变量与普通变量一样的是随机的默认值一般初始化为NULL空值。赋值引用变量名_p 地址//地址必须是有权限而且有意义的内存地址指向栈内存int num;int* p NULL;p num;指向堆内存int* p NULL;p malloc(4);解引用: *p通过指针变量中记录的内存编号来访问对应的内存该过程可能产生段错误。但是原因是因为存储了非法的内存编号注意访问的字节数是由指针变量的类型决定的。*p1000练习1实现一个变量交换函数调用它对一个数组进行排序 #includestdio.hvoid swap(int* p1,int* p2) {int change0;change*p1;*p1*p2;*p2change; }int main(int argc,const char* argv[]) {int num[10]{8,0,5,6,9,3,2,7,4,1};for(int i0;i9;i){for(int ji1;j10;j){if(num[i]num[j])swap(num[i],num[j]);}}for(int i0;i10;i){printf(%d,num[i]);}}练习2实现一个函数计算两个整数的最大公约数、最小公倍数最大公约数用return返回最小公倍数使用指针返回 注意想要获取多个返回值可以借助指针返回 #includestdio.hint big(int n1,int n2) {int an1n2?n1:n2,bn1n2?n2:n1,c1;while(c){ca%b;ab;bc;}return a; }int small(int n1,int n2) {int an1n2?n1:n2,bn1n2?n2:n1;int i1;while(a*i%b!0){i;}return a*i; }int max_min(int n1,int n2,int* p) {*psmall(n1,n2);return big(n1,n2); }int main(int argc,const char* argv[]) {int max0,min0;int num1,num2;printf(请输入两个数);scanf(%d%d,num1,num2);maxmax_min(num1,num2,min);printf(%d %d\n,max,min); }使用指针需要注意的问题 空指针值是NULL的指针变量都是空指针如果对空指针进行解引用产生段错误。一般NULL也是一种错误标志如果一个函数返回值是指针类型时当函数执行出错可以返回NULL表示该函数执行出错。注意NULL在绝大多数的系统中都是0在个别系统上是1ifNULLpif(!p)如何避免空指针带来的段错误使用来历不明的指针之前先做判断是不是空指针。1、当函数的参数是指针时别人传给你的就有可能使空指针2、从函数获取返回值使也可能获取到的使空指针野指针指针指向不确定的内存的指针野指针解引用的危害1、脏数据2、段错误3、一切正常野指针的危害比空指针更严重因为野指针无法判断出来而且可能是隐藏性的错误短时间内不暴露所有的野指针都是人为制造的如和避免产生野指针1、定义指针是一定要初始化2、函数不返回局部变量地址3、指针指向的内存被释放后指针变量立即置空NULL 指针的运算 指针变量里存储的是整型理论上整型数据能使用的运算符她都能用但绝大多数都是无意义的。指针n指针指针类型的宽度*nint就是 4 前进了n个元素 指针-n指针-指针类型的宽度*n 后退了n个元素 指针-指针指针-指针/指针类型宽度 计算相隔了多少个这种元素指针与const const int* p; 当我们为了提高传参效率而使用指针时传参的效率虽然提高了但是变量也有被修改的风险这种写法就可以保护指针变量指向的内存不被修改int const *p; 效果同上 int* const p; 保护指针变量不被修改const int* const p; 保护指针变量和指针变量指向的内存不被修改 int const * const p; 效果同上const保护谁按照就近原则指针数组与数组指针 指针数组由指针组成的数组它的成员都是指针变量类型* arr[长度];数组指针专门指向数组的指针类型 (*arr)[长度];指针与数组名 数组名是一种特殊的指针它是常量不能改变它的值它与数组内存是映射关系没有自己的内存空间 数组名 数组名 数组名[0]指针变量它由自己的存储空间如果它存储的是数组的首地址指针可以当作数组使用数组名[i] *(数组名i)*(指针名i) 指针名[i]注意数组作为函数的参数时蜕变成了指针所以长度丢失了。二级指针 二级指针就是指向指针的指针。里面存储是指针变量的地址。 定义类型** 变量名_pp 赋值变量名_pp 地址变量名_pp 指针变量 解引用*变量名_pp 指针变量 p**变量名_pp *指针变量 *p注意当函数之间需要共享指针变量是必须传递二级指针函数指针 函数返回值 *函数指针名p参数列表函数名就是一个地址整数它代表了函数在代码段中的位置可以通过函数指针把函数作为参数传递给另一个函数这叫回调函数指针就是指向函数的指针里面存储的就是该函数在代码段中的位置。
http://www.ihoyoo.com/news/115153.html

相关文章:

  • 珠海市品牌网站建设平台图片制作器下载
  • 网站开发 定制 合同 模板网站建设 app
  • 个人网站做导航网站最新热搜新闻
  • 网站建设空间和服务器方式四川时宇建设工程有限公司官方网站
  • 软件企业网站建设栏目结构图网站制作用的软件有哪些
  • 吉林营销网站建设开发网站代码在线优化
  • 北京营销型网站建设公司上海公司核名查询
  • 网站备案好弄吗网站设计任务书范文
  • 网站图片模板源码贵阳网站开发报价
  • 大连仟亿科技网站建设公司 概况电销app
  • 做美食视频的网站有哪些兰州网站制作怎么样
  • 网站功能小程序制作多少钱
  • 网站关键词描述个人备案做别的网站
  • 网站 微信小程序怎么做宽屏企业网站源码
  • 嘉定区建设局网站建立简单的网站
  • 网站空间500m是什么给网站做图
  • 语言 网站开发西樵网站建设
  • 网站用自己的电脑做服务器滴滴推广联盟
  • 温州手机网站制作哪家好外包公司与劳务派遣区别
  • 站酷网怎么赚钱拓者设计吧首页
  • 网站seo内部优化网站建设及网络推广
  • 旅游网站开发结束语百度seo和sem的区别
  • 小程序代注册济南百度推广seo
  • 安全的集团网站建设怎么宣传自己的网站推广
  • 河南网站推广公司wordpress 阿里云景象
  • 中工信融网站建设网站原创文章
  • 哪家高端网站建设好阿里云可以放几个网站
  • 四川省建设注册中心网站长春网站怎么推广
  • 淘宝店铺网站建立中小型企业网站建设的资金流动
  • asp网站有哪些大美南京网站