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

广州网站建设 美词域名流量查询工具

广州网站建设 美词,域名流量查询工具,网页制作培训费用多少,oa系统开发教程目录 指针常用运算 定义: 指针与整数值的加减运算 格式: 举例: 说明: 实例 举例: 实例 指针的自增、自减运算 定义 实例1: 实例2: 指针常用运算 定义: 指针本质上就是一…

目录

指针常用运算

 定义:

指针与整数值的加减运算

格式:

举例:

说明:

实例 

举例:

实例

指针的自增、自减运算 

定义

 实例1:

实例2:


 

指针常用运算


 定义:

          指针本质上就是一个无符号整数代表了内存地址

          除了上面提到的取址、取值外,指针还可以与整数加减、自增自减、同类指针相减运算等。            但是规则并不是整数运算的规则。


指针与整数值的加减运算


格式:

        指针±整数
 
注:

  1. 指针与整数值的加减运算,表示指针所指向的内存地址的移动(加,向后移动;减,向前移动)。
  2. 指针移动的单位,与指针指向的数据类型有关。数据类型占据多少个字节,每单位就移动多少个字节。通过此操作,可以快速定位你要的地址。

举例:

int mainm(){
short m = 10;
short* s = &m;
printf("%p\n", s);//变量m的正常地址
printf("%p\n", s + 1);//变量m位置+1,位置添加2个字节
printf("%p\n", s - 1);//变量m位置-1,位置减少2个字节int n = 20;
int *i = &n;
printf("%p\n", i);
printf("%p\n", i + 1);
printf("%p\n", i - 1);
return 0 ;}

说明:

  • s + 1表示指针向内存地址的移动一个单位,而一个单位的short类型占据两个字节的宽度,所以相当于移动两个字节。

变量a、b、c、d、e都是整型数据int类型,它们在内存中占据一块连续的存储区域。指针变量p指向变量a,也就是p的值是0xFF12,则:

 
说明:

指针p+1并不是地址+1,而是指针p指向下一个数据。比如,int* p,p+1表示当前地址+4,指向下一个整型数据。

实例 

int main() {int arr[5]= {11, 22, 33, 44, 55};int* p = &arr[1];printf("p的值为%d\n",*p); //对应的值为22printf("p+1的值为%d\n", *(p + 1)); //对应的值为33printf("p-1的值为:%d\n",*(p - 1)); //对应的值为11return 0;
}

注意:只有指向连续的同类型数据区域,指针加、减整数才有实际意义。


举例:

对于长度是N的一维数组a,当使用指针p指向其首元素后,即可通过指针p访问数组的各个元素。

 
其中:

  • a[0]用*p表示
  • a[1]用*(p+1)表示
  •  a[i]用*(p+i)表示

实例

#include "stdio.h"int main() {//指针进行加减运算,与普通整数加减规则不同, +-指的是地址进行移动,每次一定指定个单位(一个单位指一个数据类型所占的字节个数)short m = 10;short* s = &m;printf(" %p\n",s);//变量m的正常地址 0000009461ff706printf(" %p\n", s + 1);//变量m位置+1,位置添加2个字节 0000009461ff708  +1指的是地址向后移动一个单位(一个单位指一个数据类型所占的字节个数)printf(" %p\n", s - 1);//变量m位置-1,位置减少2个字节 0000009461ff704int n = 20;int *i = &n;printf(" %p\n", i); //000000456edffa08printf(" %p\n", i +1);//000000456edffa0cprintf(" %p\n", i - 1);//000000456edffa04}

指针的自增、自减运算 


定义

指针类型变量也可以进行自增或自减运算,如下: 
   p++、p--、++p、--p
  
:++和--,这里针对指针的增加或减少指的是内存地址的向前或向后移动。
 
对于数组来说,由于数组在内存中是连续分布的:

  • 当对指针进行++时,指针会按照它指向的数据类型字节数大小增加,比如int*指针,每++一次,就增加4个字节。
  • 当对指针进行--时,指针会按照它指向的数据类型字节数大小减少,比如int*指针,每--一次,就减少4个字节。

 实例1:

int main() {int arr[5] = {1, 2, 3, 4, 5};int* p1 = &arr[0];int* p2 = &arr[3];printf("p1的值为:%d\n", *p1);     //1printf("++p1的值为:%d\n", *++p1); //2printf("p1的值为:%d\n", *p1);     //2printf("p2的值为:%d\n", *p2);     //4printf("--p2的值为:%d\n", *--p2); //3printf("p2的值为:%d\n", *p2);     //3return 0;
}

实例2:

请分析下面几种情况。
初始情况:

int a[5] = {10,20,30,40,50};

情况1

 int* p = a;  //p开始时指向数组a的首元素  等同于 int* p = &a[0];p++;  //使p指向下一元素a[1]printf("%d\n",*p);  //得到下一个元素a[1]的值,即20

情况2:

int* p = a;  //p开始时指向数组a的首元素
printf("%d\n",*p++); //10
printf("%d\n",*p);   //20

 

 

http://www.dtcms.com/wzjs/506676.html

相关文章:

  • 商城网站开发设计sem优化推广
  • 什么是网站实施哈尔滨关键词优化方式
  • 河北区做网站公司全网营销的公司
  • 网站建设一般怎么付款官网优化包括什么内容
  • 电子商务网站开发课程设计百度seo营销公司
  • 网站定制需求seo外链技巧
  • 免费营销网站制作搜索引擎国外
  • 涿鹿镇做网站企业站seo
  • 大连网页设计师招聘福州关键词排名优化
  • 毕业设计做系统网站好做营销策划的公司
  • 漳州网站开发营销推广方案设计
  • 工程信息网站排名抖音优化是什么意思
  • 上海电商网站建设公司百度推广电话号码
  • 迈肯奇迹做网站百度云app下载安装
  • 浙江电信关于网站备案信息核实的公告网络推广seo是什么
  • 申请免费网站建设十大收益最好的自媒体平台
  • 怎样使用仿站小工具做网站淘宝怎么提高关键词搜索排名
  • 政务公开和网站建设工作问题新闻头条今日最新消息
  • 网站建设高端培训如何在google上免费推广
  • windows搭建网站开发百度知道客服电话
  • 制作一个网站需要注意什么楼市最新消息
  • 广东平台网站建设seo优化检测
  • 网站开发运营东莞做网站seo
  • 网站建设作业有哪些制作网页链接
  • 国外web设计网站模板下载北京做百度推广的公司
  • wb网页设计素材模板网站网页制作app
  • 团购网站营销方案推广普通话的宣传内容
  • 企业网站建设找外包公司做营销型企业网站建设的内容
  • 莱芜网站建设哪里有地推放单平台
  • 网站可以做系统还原吗希爱力双效片副作用