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

兰州市建设工程安全质量监督站网站门户网站后台管理系统

兰州市建设工程安全质量监督站网站,门户网站后台管理系统,网站制作厂家有哪些,什么网站系统做的最好的创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…

创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡>𖥦<)!! 

主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!

给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ

目录

一、初步认识指针、内存地址的概念

1)内存地址

2)地址的相关运算

 二、指针变量

1)声明指针变量

 2)指针变量的字节数—根据操作系统的位数而不同

3)指针的移动

 三、多级指针

 四、指针注意事项

1)移动不越界

​2)定义指针不省 * 

3)初始空值可用NULL


一、初步认识指针、内存地址的概念

寻找地址的行为:想象成自己是快递小哥,送快递需要寻找地址,根据地址门牌号派送快递

类比到计算机寻找地址的过程,两个 编程思想:找地址,得空间! 

 

1)内存地址

内存地址即内存的地址,在创建变量时,计算机会分配一个内存空间用来存放变量,内存地址就是这个内存空间的地址,对每个字节来说都有自己的地址,在输出变量时,计算机就会找到这个变量的内存空间,从内存空间中取出变量。

可以将内存地址想象成我们居住的小区,住宅的最小单位是户(买房按户起卖,才不会卖几平米呢(╯°Д°)╯︵ ┻━┻),每户就是一个内存空间,每户都有门牌号,每户的门牌号就是内存空间的地址,门牌号具有唯一性,连续性,编号从小到大(101、102、201、202),内存地址也具有这些特征。(≧∇≦)ノ 很生动形象吧!

 理解了内存地址,就引入了新的概念——指针。指针就是地址!!!

2)地址的相关运算

&取变量所占字节的首地址;    * 根据地址取值  (&取地址 *对地址取空间)。

#include <stdio.h>
int main()
{//地址相关运算:&取变量所占字节的首地址  * 根据地址取值  (&取地址 *对地址取空间)int age = 65;printf("十六进制地址:%p 十进制地址:%d\n",&age,&age);printf("age = %d\n",age,*&age);//*和&优先级相同,结合方向从右向左 *&为互逆运算,结果仍为age(*& age)++;  //就是age++return 0;
}

注:由于++运算符的优先级比较高,(*& age)++中需要加(),否则会先计算age++ 

小提醒✿:在内存中存入的数据为16位哦~

 二、指针变量

1)声明指针变量

指针变量就是存储内存地址变量。

	//声明指针变量int a = 5;int* p;         //   *是指针的标志  int* 是一个组合类型——整型指针类型p = &a;         //   a的地址被 p指针变量保留:p指向了aprintf("p(地址):%p\n",p);a--;			// 利用指针对存储值进行算术运算(注意运算符的优先级)a *= 2;(*p)--;			//  a-- 和(*p)--相同      直接改变a为直接操作   通过*p取a空间改变a为间接操作//注:*和--优先级相同 需要()*p *= 2;

 2)指针变量的字节数—根据操作系统的位数而不同

#include <stdio.h>
int main()
{int a = 5;int* p;         //   *是指针的标志  int* 是一个组合类型——整型指针类型p = &a;         //   a的地址被 p指针变量保留:p指向了aprintf("p的字节数:%d int*的字节数:%d\n", sizeof(p), sizeof(int*) );char* pc;double* pd;unsigned long long* pull;printf("pc的字节数:%d char*的字节数:%d\n", sizeof(pc), sizeof(char*));printf("pd的字节数:%d double*的字节数:%d\n", sizeof(pd), sizeof(double*));printf("pull的字节数:%d unsigned long long*的字节数:%d\n", sizeof(pull),sizeof(unsigned long long*));printf("同一个操作系统中,不论什么类型的指针变量,所占字节都相同(不论什么样的车,车牌号都是5位)\n");printf("只要是指针变量类型,就占4(32位)/8字节(64位)(地址编号大小)\n");return 0;
}

无论什么类型的指针变量,所占字节长度是固定的,因为指针变量保留的是内存地址的编号,它只能随着32位系统或64位系统而不同 。32位就是用4个字节空间保留地址编号,64位就用8个字节空间保留地址编号。

 我们可以使用调试器进行观察:

 

3)指针的移动

     指针的移动:根据数据类型不同,移动的步伐大小也不同
    *p是一个计算过程 得到空间
    p负责找到首地址(开头的小地址)
    *负责:根据类型的字节数 获得空间使用权

#include <stdio.h>
int main()
{int a = 5;int* p;         //   *是指针的标志  int* 是一个组合类型——整型指针类型p = &a;         //   a的地址被 p指针变量保留:p指向了achar* pc = &a;double* pd = &a;unsigned long long* pull = &a;printf("类型不同,得到空间使用权大小不同:\n");printf("\t%d %d char* pc:%d个字节的空间使用权\n", sizeof(pc), sizeof(char*),sizeof(*pc) );  printf("\t%d %d double* pd:%d个字节的空间使用权\n", sizeof(pd), sizeof(double*), sizeof(*pd) );printf("\t%d %d unsigned long long* pull:%d个字节的空间使用权\n", sizeof(pull), sizeof(unsigned long long*), sizeof(*pull) );printf("类型不同,偏移的字节数不同:\n");printf("\tint* 4字节:%d %d %d %d\n",p-1,p,p+1,p+2);printf("\tchar* 1字节:%d %d %d %d\n",pc-1,pc,pc+1,pc+2);printf("\tdouble *8字节:%d %d %d %d\n",pd-1,pd,pd+1,pd+2);printf("\tunsigned long long* 8字节:%d %d %d %d\n",pull-1,pull,pull+1,pull+2);return 0;
}

 他们的开始地址都相同,由于数据类型的不同,偏移量不同 

 三、多级指针

多级指针又称为:指向指针的指针。 指针也是数据类型,也有他自己的内存地址,也有指向他的指针。       套娃呢搁这(*>.<*)

#include <stdio.h>
int main()
{/*多级指针又称为:指向指针的指针。*/int a = 100;int* p = &a;int** q = &p;//二级指针int*** z = &q;printf("%p %p %p\n",p,q,z);printf("%d\n",***z);return 0;
}
#include <stdio.h>
int main()
{   int a, b, c;//创建了3个int型变量int* p, q, k;//创建了一个指针变量 2个int型变量int* x, * y, * z;//创建了三个指针变量return 0;
}

 四、指针注意事项

1)移动不越界

指针不要位移到不属于本程序的内存空间,也不要利用指针改变不属于本程序内存空间的数据 

    int a = 5;int* p = &a;*p = 10;p += 10;//偏移10位:不属于自己空间*p = 8;int* q = (int*)0x5823682;*q = 8;

 2)定义指针不省 * 

声明多个指针变量类型时,*不能省略。

#include <stdio.h>
int main()
{int a, b, c;//创建了3个int型变量int* p, q, k;//创建了一个指针变量 2个int型变量int* x, * y, * z;//创建了三个指针变量return 0;
}

 调试器看一眼:

 y,z前没有* ,没有被当成指针变量

3)初始空值可用NULL

指针变量的初始值如果没有明确指向目标用NULL赋值

#include <stdio.h>
int main()
{int z = 0;double t = 0.0;int* x = NULL;//指针变量不确定指向哪个空间 建议用NULL设置:空地址return 0;
}

 

http://www.15wanjia.com/news/157258.html

相关文章:

  • 网站建设的销售术语河南省建设厅专家库
  • 兖州网站建设推广湘潭学校网站建设 精诚磐石网络
  • 定制网站开发都提供那些东西企业网站尺寸
  • 现在网站开发用什么环境企业网站模板源码免费
  • 自助网站建设哪家优惠做门图网站
  • 完备的常州网站推广如何搭建app开发平台
  • 中国搜索网站排名官网定制
  • 网站开发合同缴纳印花税吗wordpress指定页面连接数据库连接
  • 淘宝客网站建设的策略竞价外包推广专业公司
  • 做网站服务器租一年多少钱有用免费模板网
  • 深圳seo网站优化公司云端服务器
  • 公司网站自己创建百度地图导航网页版
  • 怎么做视频网站教程在青岛建网站
  • 织梦商城网站模板网站怎么免费建站
  • 虚拟机做网站wordpress增加侧边栏
  • 西部数据网站管理助手v3.0WordPress实现点击加载评论
  • 优秀定制网站建设方案班级的网站设计怎么做
  • 个人在国外网站做电商研发小程序成本
  • 网站建设文化怎么样seo关键词排名优化工具
  • 新建网站功能模块制冷机电工程东莞网站建设
  • 如何自己做自己的网站注册公司需要的网站建设
  • 网站默认图片网站自动答题脚本怎么做
  • 网站建设 万网网站建设思路设计
  • 河南商城网站建设广州棋牌软件开发公司
  • 网站建设报价方案对比外贸网站建设制作公司
  • 高质量网站外链平台大型网站建设的价格
  • 广东网站备案网站建设方案书深圳市官网网站建设
  • 建立网站三大基础淘宝代运营多少钱一个月
  • 做个什么样的网站汕头网站推广系统
  • 怎么做网站浏览量分析wordpress主题开发基础入门教程