C语言中指针的加减运算方法示例

  

参考文章,值得一看

        arr char [3];   printf("加勒比海盗:\ n % d % d % d \ n \ n \ n”,加勒比海盗,arr + 1, arr + 2);   char *帕尔[3];   printf("帕尔:\ n % d % d % d \ n \ n \ n”,帕尔帕尔+ 1,帕尔+ 2),      

 C语言中指针的加减运算方法示例

  

从结果可以看的到,字符数组每个元素占1字节,字符指针数组每个占4字节。
  

  

<强>再看一个例子:

        char=a, b=b, c=c, d=' d ';   char * arr [20]={, a, b, c, d};   char * *帕尔=arr;//arr的类型也是char * *   char * str;   printf(",答:% d和b: % d和c: % d, d: % d \ n”,, a, b, c, d);   printf (", arr [0]: % d, arr [1]: % d, arr [2]: % d, arr [3]: % d \ n”,和arr[0],及arr[1],及arr[2],及arr [3]);   printf("加勒比海盗:% d,帕尔:% d \ n”,加勒比海盗,帕尔);   printf(" *帕尔:% d, * *帕尔:% c \ n”, *帕尔,* *帕尔);   str=*帕尔;//arr [0], char *类型   printf (" - - - - - - str=*帕尔- - - - - - \ n”);   printf (" str: % d * str: % c \ n”, str, * str);   str + +;   printf (" - - - - - - str + + - - - - - - \ n”);   printf (" str: % d * str: % c \ n”, str, * str);      str=*(帕尔+ 1);   printf (" - - - - - - str=*(帕尔+ 1)- - - - - - \ n”);   printf (" str: % d * str: % c \ n”, str, * str);   str=*(帕尔+ 2);//* (arr + 2 * 4)   printf (" - - - - - - str=*(帕尔+ 2)- - - - - - \ n”);   printf (" str: % d * str: % c \ n”, str, * str);      

 C语言中指针的加减运算方法示例“> <br/>
  </p>
  <p> <强>指针的加减运算,就是将指针当前值与sizeof()相加减。</强> <br/>
  </p>
  <p>比如上例中str=*帕尔,这时str当前值为arr[0],指向的类型是一个字符(所以大小字为1节),str + +就代表arr[0] + 1 * 1,但是由于指针数组的每一项占4字节,所以之后的* str输出为& # 63;。<br/>
  </p>
  <p>再比如上例中str=*(帕尔+ 1),指针帕尔当前值为加勒比海盗,指向的类型是一个字符指针char *类型(所以大小为4字节),帕尔+ 1就代表arr + 1 * 4,向高地址方向移动4个字节,即,arr [0] + 4==, arr [1], str就变成了arr[1],所以之后输出的* str为b。<br/>
  </p>
  </p> <p>另外
  <p>指针和指针进行加减:两个指针不能进行加法运算,这是非法操作,因为进行加法后,得到的结果指向一个不知所向的地方,而且毫无意义。两个指针可以进行减法操作,但必须类型相同,一般用在数组方面,不多说了。</p>
  <p> </p>
  <p>以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。</p><h2 class=C语言中指针的加减运算方法示例