这段代码中 -s 的作用是什么,其中 s 是一个字符指针?

lma*_*ara 1 c c++ string character pointer-arithmetic

在这段代码中

strcpy(s, "bacalaureat");
i = strchr(s, 'a') - s; // i = 1
Run Code Online (Sandbox Code Playgroud)

的值为i1。为什么会这样,-s上面的作用是什么?

cig*_*ien 5

参考

char *strchr( const char *str, int ch );

ch在指向的以空字符结尾的字节字符串中查找 ... 的第一次出现str

Sostrchr(s, 'a')将返回一个指向该字符第一次出现的指针a,即s.

减去s从这个结果只是指针运算,让你的角色的指数as,这是1。