通过在C中执行"string"+ 1来截断

adi*_*tya 0 c truncate char

我最近遇到了关于堆栈溢出的以下代码(请参阅此处的全文): -

char *c = "200939915";
char *d = c + 1;
Run Code Online (Sandbox Code Playgroud)

它指定da值"00939915",我觉得这非常违反直觉.

有人能解释一下这个过程的机制吗?这叫什么东西?

我是一名大一新生并做入门CS课程,所以这将有很大的帮助:)

Gau*_*gal 7

char *c = "200939915";
Run Code Online (Sandbox Code Playgroud)

c是一个指向char(第一个char 200939915)的指针. c+1将指向下一个字符.

          (2 0 0 9 3 9 9 1 5)
           ^ ^
           | |
           c c+1
Run Code Online (Sandbox Code Playgroud)