//Increment and decrement operators:
  char *s = "iLoveC";
  int j = 0;
  s[j++]; // => "i". Returns the j-th item of s THEN increments value of j.
  j = 0;
  s[++j]; // => "L". Increments value of j THEN returns j-th value of s.
  // same with j-- and --j


有关此问题:


*上的s代表什么?
为什么j在第四行返回一个i而不是0?
为什么j在第六行返回一个l而不是1?


这来自一个针对初学者的简单教程(http://learnxinyminutes.com/docs/c/),我什至不明白。我的背景是PHP / Javascript / Lisp。

最佳答案

*运算符将s声明为指针。这意味着它将包含分配的变量的地址。这里,指针s的值是i,即字符串“ iLoveC”的第一个元素。当您使用后增量s [j ++]时,它等效于s [0] ='i',但是当您使用s [++ j]时,其等效于s [1] ='L'

查看此链接http://www.programiz.com/c-programming/c-pointers-arrays
然后先读一些书。

10-07 13:00
查看更多