c++地址运算符,C语言-运算

  c++地址运算符,C语言*运算

  Yyds干货库存

  C语言中的指针执行数组元素时,C语言允许对指针进行算术运算。

  指针操作C语言支持三种格式的指针算术运算,包括指针加整数、指针减整数和两个指针减。还可以用关系运算符来比较指针。

  P加整数J表示指针向后移动J个单位(每个单位是指针P的类型所占用的字节数),指向P最初指向的元素之后的第J个元素,如果P指向数组a[i],那么p j指向a[i j]。P减去整数j表示指针向前移动j个单位,指向P最初指向的元素之前的第j个元素。如果P指向数组a[i],那么p-j指向a[i-j]。减去两个指针,得到指针之间的元素个数。如果指针P指向a[i],指针Q指向a[j],那么p-q等于I-J,指针的比较取决于指针所指向的两个元素的相对位置。如果指针P指向a[i],指针Q指向A [J],则P和Q的比较结果由I和J的大小决定,因此适合指针运算的运算符有算术运算符,-,赋值运算符和复合赋值运算符(=,=,-=,-)以及所有关系运算符。

  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * int I=0;Printf(请输入%d个整数:,n);for(;i i ) { scanf(%d ,a I);} p=a;sum=0;for(I=0;I I){ sum=* p;p;} printf(这%d个数之和是%d\n ,N,sum);返回0;}

  c语言的间接寻址运算符*通常与or运算符一起使用,有以下四种不同的形式:

  意义p或(p)先将表达式的值计算为*p,然后p增加1(*p)先将表达式的值计算为p,然后p增加1 p或(p)先将p增加1,然后将表达式的值计算为*p或(p)先将(p)增加1, 然后计算表达式的值为(P)/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * pointer _ 6。 C * * * * * * * * * * *语言中的自增自减和间接寻址运算符* *包括stdio . h # define N 10 int main(){ int a[10]={ 0,1,2,3,4,5,6,7,8,9 };int temp=0;int * p=a;printf( p的初始值是% p,* p的值是%d\n ,p,* p);temp=* p;printf( * p的值是%d,运算后p的值是% p,* p的值是%d\n\n ,temp,p,* p);printf( p的初始值是% p,* p的值是%d\n ,p,* p);temp=*(p);printf( *(p *(p)的值为%d,p的值为% p运算后,* p的值为%d\n\n ,temp,p,* p);printf( p的初始值是% p,* p的值是%d\n ,p,* p);temp=(* p);printf((*p (* p)的值是%d,运算后p的值是% p,* p的值是%d\n\n ,temp,p,* p);printf( p的初始值是% p,* p的值是%d\n ,p,* p);temp=* p;printf( * p的值是%d,运算后p的值是% p,* p的值是%d\n\n ,temp,p,* p);printf( p的初始值是% p,* p的值是%d\n ,p,* p);temp=*(p);printf( *(p)的值为%d,p的值为% p运算后,* p的值为%d\n\n ,temp,p,* p);printf( p的初始值是% p,* p的值是%d\n ,p,* p);temp=* p;printf( * p的值是%d,运算后p的值是% p,* p的值是%d\n\n ,temp,p,* p);printf( p的初始值是% p,* p的值是%d\n ,p,* p);temp=(* p);printf((* p)的值为%d,p的值为% p运算后,* p的值为%d\n\n ,temp,p,* p);返回0;}

  指针和数组可以使用数组的名称作为指向数组第一个元素的指针。但是,数组名是指针常量,不能赋值。

  函数中数组形式的形参都是指针。为了明确指针形式,数组形式的形参可以看作指针,两者完全一样。

  同样,指针也可以用作数组名,指针p的表达式p[i]等价于*(p i)。

  多维数组的元素按顺序存储在内存中。如果获得第一个元素的指针,可以通过重复和增加指针来访问每个元素。

  在C中,N维数组视为一维数组,每个数组元素为n-1维数组,以此类推。因此,对于数组int a[N1][N2].[Nm],A是一维数组的指针,其元素是N维数组,所以指针增减的移动单元是N维数组,a[N1]是一维数组的指针,其元素是n-1维数组,所以[N1]指针增减的移动单元是n-1维数组。

  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *指针7 . c * * * * * * * * * * * * * * * * * * * for(;p p - ) printf(%d ,* p);} int Sum(int * a){ int * p=a;int sum=0;for(;p a N;p)sum=* p;返回总和;} int main(){ int a[N];Printf(请输入%d个整数,n);int I=0;for(;i i ) scanf(%d ,a[I]);printf( 10个数的逆序是:);reverse print(a);printf( \ n );Printf(这%d个整数之和是%d\n ,N,Sum(a));返回0;}

  参考K.N. King,卢秀峰译。c语言程序设计-现代方法。https://www.coursera.org/course/pkuic人民邮电出版社

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: