此代码将输出字符串中字符的索引:
#include <stdio.h>
#include <string.h>
int main(void){
char str[100]="birds are dying";
char *p;
p = strchr(str,'e');
int i=p-str;
printf("%d" , i);
return 0;
}
我无法理解的唯一代码行是:
int i=p-str;
str 是一个字符串,p 也是,我搜索了将字符串打印为整数的结果,发现它是一个未定义的行为,那么它实际上返回了什么?
p - str 是 :
e dying - birds are dying
,当我们以某种方式将其更改为整数时,为什么它返回正值
谢谢