指针自加自减运算

墨蓝 2022-03-31 08:49 429阅读 0赞

指针的自加自减运算不同于普通变量,并非简单的加1减1。举例:

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. /* 指针自加自减运算 */
  4. /* written by Chen Gengru */
  5. /* updated on 2019-1-2 */
  6. void main()
  7. {
  8. int i, *iPointer = &i;
  9. short j, *sPointer = &j;
  10. double k, *dPointer = &k;
  11. scanf("%d%d%d", iPointer, sPointer, dPointer);
  12. printf("\nint:\n");
  13. printf("p = %d\n", iPointer);
  14. iPointer ++;
  15. printf("p++ = %d\n", iPointer);
  16. printf("\nshort:\n");
  17. printf("p = %d\n", sPointer);
  18. sPointer ++;
  19. printf("p++ = %d\n", sPointer);
  20. printf("\ndouble:\n");
  21. printf("p = %d\n", dPointer);
  22. dPointer ++;
  23. printf("p++ = %d\n", dPointer);
  24. }

结果:
在这里插入图片描述
基本整形变量i在内存中占4个字节,指针iPointer是指向变量i的地址的,这里的p++不是简单的在地址上加1,而是指向下一个存放基本整数类型的地址。如图所示,因为变量i是基本整数类型,所以执行p++后,iPointer的值增加4个字节,j被定义成短整型,所以sPointer的值增加2,k被定义成双精度型,所以dPointer的值增加8个字节

发表评论

表情:
评论列表 (有 0 条评论,429人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C++ 指针运算

    首先明确几点: 1:涉及到数组的指针,若两指针指向的不是同一个数组,那么指针之间的加减运算是无意义的,因为得到的结果就是他们地址之间的差值。 2:指针变量加/减 一个整数,

    相关 运算

    自增自减运算 小胖子正在学习汇编语言,汇编语言里面有自增和自减指令,叫inc和dec指令,其实C语言里面也有自增和自减运算的,即++和—运算,但这些指令或者运算都是有范围

    相关 java运算a++/++a

    1、自增(++)自减(–)运算符是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行运算,而自增自减运算符是一个操作数。 public class selfAd