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

优化网站专题/东莞网站制作公司联系方式

优化网站专题,东莞网站制作公司联系方式,青岛建筑网,网站和网页的区别是什么指针相关概念 指针既是内存地址,指针和内存地址有关系; 什么是内存地址? 1、内存是以字节为单位的连续存储介质 2、内存的地址具有唯一性、和不可修改性 3、内存是一维数组的存储模式 空指针 在内存模块组中,有一个起始地址&…

指针相关概念

指针既是内存地址,指针和内存地址有关系;
什么是内存地址?
1、内存是以字节为单位的连续存储介质
2、内存的地址具有唯一性、和不可修改性
3、内存是一维数组的存储模式

空指针
在内存模块组中,有一个起始地址,也就是0号对应位置的内存块中,这里就是NULL PONITER的内存地址;
把数据指到这个地址,系统会自动进行回收。

野指针
当一个指针没有明确指向一个内存地址的时候,称为野指针;比如int* p;
当定义一个指针的时候需要直接进行初始化int* p = nullptr;

C语言的指针运算符 ‘*’ ‘&’

‘*’运算符用于定义一个指针类型,我们说的指针都是有类型的,int* p = nullptrt;这里是int类型的指针,

定义指针

int main(int argc, char* argv[])
{int x = 3, y = 4;int* p1 = &x, *p2 = &y;
}

内存结构解析
在这里插入图片描述
int x = 3, y = 4;这句代码的时候,内存分配了8bits,里面分别存放了x和y;
int* p1 = &x, *p2 = &y;这句代码的时候,内存也是分配了8bits,里面存放的是x和y的内存地址

解指针
当我们使用指针指向一个数据的时候,操作数据的时候使用指针,如果想使用数据本体,需要解指针

int main(int argc, char* argv[])
{int x = 3, y = 4;// '&'作用在变量的时候是取地址,作用在类型的时候表示引用int* p1 = &x, *p2 = &y;// 定义好的指针,再次使用‘*’既可以解指针cout << "x:" << *p1 << " y:" << *p2 << endl;
}

取数据地址‘&’

int main(int argc, char* argv[])
{int x = 3, y = 4;// '&'作用在变量的时候是取地址,作用在类型的时候表示引用int* p1 = &x, *p2 = &y;// 定义好的指针,再次使用‘*’既可以解指针cout << "x:" << *p1 << " y:" << *p2 << endl;// '&'这里是别名,等同于x1和x是一个数据int &x1 = x;x1 = 5;cout << "x:" << *p1 << " y:" << *p2 << endl;
}

一维数据指针

数组指针的一些基本概念
1、一维数据的数组名既是内存的首地址
2、数组指针是连续的,一定是连续的

int main(int argc, char* argv[])
{int arr[] { 3, 4, 5, 6, 7};// 一维数组的首地址既是内存块的起始位// 当p0++的时候,内存会进行偏移,每次增加1个数,内存会偏移4bits,因为这是一个int类型的指针int* p0 = arr;// 有两种访问数组的方法,下标法和指针法int v1 = arr[1];int v2 = *(p0 + 1);cout << (v1 == v2) << endl;
}

二维数据指针

多维数组在内存的存储还是一维数据的方式,通过展开多维数据,呈现为一维数据的方式

int main(int argc, char* argv[])
{// 二维数组的展开方式是先rows行,后列cols// 这里是一个2行3列的二维数组,数组名是第一行的首地址int arr[][3] = {{ 2, 3, 4 }, { 5, 6, 7 }};// 访问方式:下标法和指针法// 下标法int v1 = arr[1][1];// 指针法// arr数组名表示第一行的首地址,总共2行// arr[1]第二行的首地址,然后偏移1个单位,等同于arr[1][1]int v2 = *(arr[1] + 1);cout << (v1 == v2) << endl;
}

二级指针和指针函数

多级指针概念:一个指向指针的指针,一个指针在内存里面存储了另外一个指针的地址,多级指针需要多次解指针
指针函数:用指针来定义的函数,函数不确定,指针函数是一种C/C++的回调函数


代码实例

int Pointer(int x, int y)
{return x + y;
}int main(int argc, char* argv[])
{// ------- 二级指针 --------int x = 3, y = 4;int* p1 = &x;  // p1 是一个一级指针,指针直接指向x的内存地址int** p2 = &p1;// p2 是一个二级指针,指向p1存储的内存地址cout << p2  << endl;  // p2的内存地址cout << *p2 << endl;  // p1的内存地址cout<< **p2 << endl;  // x真实的数据// ------- 指针函数 ---------int (*PointerFuncNormal)(int, int);        // 通用指针函数定义,语法:returnType (*funcName)(inType...)using PointerFuncUsing = int(*)(int, int); // C++2.0之后使用using简化的定义,语法:using funcTypeName = returnType(*)(inType1...)PointerFuncNormal = Pointer;int normal = PointerFuncNormal(3, 4);PointerFuncUsing pointer = Pointer;int usingi = pointer(3, 4);cout << "normal:" << normal << " using:" << usingi << endl;
}

指针常识

1、指针一般和一个类型并存在,int* p=nullptr;本来是一个int类型,指针加入以后变成了int*类型
2、指针函数不会跟随类型并存在,int (*Func)()(*Func)强制指针作用到函数上


http://www.jmfq.cn/news/4794301.html

相关文章:

  • 家用电脑做网站服务器/网站制作流程是什么
  • 门户网站建设进度/国内快速建站
  • 外贸b2b选品/零基础seo入门教学
  • 清苑区建设网站找那家公司/长沙网动网络科技有限公司
  • 百度免费邮箱注册/seo站长工具下载
  • 厦门电子网站建设/十大广告投放平台
  • 网站中竖导航栏怎么做/开发一个网站的步骤流程
  • 如何建立自己的购物网站/网络营销属于什么专业类型
  • 葡萄城网站建设/网上电商怎么做
  • 营销型企业网站建设 广义的空间/网站站点
  • wordpress网站配置文件/企业短视频推广
  • 专业写作网站/怎么建立公司网站
  • 做视频网站的挣钱吗/域名交易平台
  • 做网站建设需要做哪些工作/软文营销案例
  • 如何仿做网站/百度快照查询入口
  • 如何制作自己的网站 可放广告/广告推广免费平台
  • 最好的wordpress/北京网站优化指导
  • 怎么做基金公司网站/关键词排名工具有哪些
  • 从网络营销角度做网站/seoyoon
  • 建设部网站如何下载国标规范/创建网站需要多少资金
  • 蔡文胜做的个人网站/云南百度公司
  • 专业网站定制哪家好/郑州厉害的seo顾问公司
  • 网站建设论文选题/哪个网站学seo是免费的
  • 在拼多多开网店的流程/网站优化入门免费教程
  • 网站开发文章/快手作品免费推广软件
  • 怎么做收费网站/今日头条新闻发布
  • 新浪门户网站是谁做的/今日全国疫情一览表
  • wordpress submenu/济南优化哪家好
  • 微商城页面设计/电脑系统优化工具
  • 网站建设图片居中代码/seo优化是做什么的