c语言中指针可不可以用在自增自减运算符中

如题所述

可以使用。
对于TYPE *类型的p,可以使用p++或p--来实现p移动位置,指向下一个或上一个元素的效果。
在C语言中,指针的本质为地址,所以当TYPE*类型的指针在进行++或--运算时,其指向的地址值,会实际增加或减少TYPE所占内存的大小。也就是说,从数值上,当p++时,值会增加sizeof(TYPE), 当p--时,值会减少sizeof(TYPE)。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-09-18
普通指针可以进行++、--运算,常指针不行,指向函数的指针也不行。如有:int a[10],*p=a;,则p++、++p、p--、--p都是合法的,而a++、++a、a--、--a不行,因为a是数组名,是常指针;被const修饰的常指针也不能进行++、--运算,如有int x,*const q=&x;,则q也不能再指向别处,q++、++q、q--、--q都是非法的。指向函数的指针进行++、--操作是没有意义的,因为函数大小不一,一般也不是连续存放,所以对指向函数的指针作++、--操作也是非法的……
第2个回答  2012-10-29
可以,指针也是变量,可以运算 ,(*p)++ 指针p指向的变量加一, *(p++) 指针变量加1后指向的另一个数追问

那有没有什么数据类型是自增自减运算符不可以用的?

追答

都可以吧,只要是数据,都可以运算,计算机就是存储0和1数据的,肯定能运算,这个没去研究过,多编程就知道了,这问题有必要吗

本回答被提问者和网友采纳
第3个回答  2015-09-24
可以,++按指针所指类型的大小后移一位,--前移。比如p指针指向当前地址为2000,指针p指向的数据类型大小100,p++则指向2100位置
第4个回答  2012-10-29
数组名和结构体名不可以。

c语言中自加自减怎么运算
在c语言中,并不是所有变量都可以使用自增自减操作符;可以使用自增自减操作符的数据类型有:int、float、double 、char、long。自增(++) :将变量的值加1,分前缀式(如++i) 和后缀式(如i++) 。前缀式是先加1再使用;后缀式是先使用再加1。自减(--):将变量的值减1, 分前缀式(如--i...

C语言中 哪些运算符不能作用于浮点数
++ 自增运算符 不可以,自增只能是整数 -- 自减运算符 不可以,自减只能是整数 取值运算符 必须是地址,地址一定是整数 & 取地址运算符 可以 ! 逻辑非运算符 可以 ~ 按位取反运算符 不可以,位运算符只能是整数 sizeof 长度运算符 可以 \/ 除 可以 ...

计算机c语言中的指针学了有哪些用处
在计算机C语言编程中,指针的使用能够显著提升代码效率与灵活性。它能够快速访问数组元素,比如要访问数组的下一个元素,只需对指针进行自增操作,访问上一个元素则自减,要跳转到数组下一行则自增指针行数,而要回到上一行则进行相应的减法操作。这种特性特别适用于快速处理图像,比如在处理1024x768像素的...

c语言中运算符的优先级是如何排列的?
优先级【高到低】:第一级:圆括号【()】、下标运算符【[]】、分量运算符的指向结构体成员运算符【->】、结构体成员运算符【.】。第二级:逻辑非运算符【!】、按位取反运算符【~】、自增自减运算符【++ --】、负号运算符【-】、类型转换运算符【(类型)】、指针运算符和取地址运算符【*...

c语言的自增自减问题
1、缓冲区是一堆栈 2、第一步:处理后面的“i--”。8进入缓冲区,i=7。缓冲区:8 <-(指针)第二步:处理“i++”。7进入缓冲区,i=8。缓冲区:7 8<- 第三步:处理”--i“。8进入缓冲区,i=7.缓冲区:8 7 8 第四步:处理“++i” 先自增1,然后8进入缓冲区,i=8 .缓冲区:...

C语言z--是什么意思
C语言的编译器对于这个运算符的支持是非常好的,事实上,在大多数情况下,z--都会比其他自加或自减操作更加高效。z--并不仅仅局限于数字类型的变量,实际上,它适用于所有可以进行自增自减操作的变量。这种操作符可以在char、short、int和long等所有基本数据类型变量和指针类型上进行操作。此外,对于...

关于C语言的一些基本常识 【详细】
C语言的语法包括表达式、函数、循环和指针等元素。尽管C语言功能强大,但也存在易错陷阱。撰写这篇博客的目的在于总结C语言中易犯错误的用法,以及基本语法的要点,帮助编程者避免常见问题。首先,我们来探讨自增自减运算符(即++i和i++)的使用。虽然它们都可以实现给一个数加一或减一,但在同一表达式...

C++中指向对象的指针可以进行自增自减
一楼朋友错了吧,应该是:const typename * const 其中typename是“类型名”的意思,也是C++里的关键字。可以是int,double,float,char,用户自定义类型等等……若是“指针常量”,应该是:typename * const 意指指针指向的内容可以改变,但指针不能修改为指向其他对象。若是“指向常量的指针”,应该是:...

c语言中* p减减是什么意思?
c语言*p减减指先p--再取p的值因为 指针运算符* 与 自增 自减 运算符 优先级 相同 而且 他们 的结合方向 是 自右至左 所以*p++ 与*p-- 就相当于 *(p++ ) 与*(p--) 他是 先引用 后自加 即 先取 *p 然后 指针p再 自加或自减 *++p 与 *--p 就相当于 *(++p )与 *(-...

c语言中运算符有哪几种,优先级顺序是怎样
三级运算符:前缀自增(++i)、前缀自减(--i)、单目转型表式式(取地址& ,提领 * , 正号+ ,负号-、 位反~ 逻辑否!)、求类型长度(sizeof unary-expression)。四级运算符:强制表达式成为type-name指定的类型( type-name ) cast-expression。五级运算符:“ * ” 乘法运算符。六级运算...

相似回答