c语言里的一个小问题

来源:百度知道 编辑:UC知道 时间:2024/05/11 13:51:45
#include <stdio.h>
#include <string.h>

int main(void)
{
char string[15];
char *ptr, c = 'r';

strcpy(string, "This is a string");
ptr = strchr(string, c);
if (ptr)
printf("The character %c is at position: %d\n", c, ptr-string);
else
printf("The character was not found\n");
return 0;
}

中倒数第五行中ptr-string中的“-”是什么意思?

是减的意思,strchr函数返回值是一个字符串的首地址,在这段代码就是第一次出现"r"的后面的部分,也就是"ring"的首地址,string是"This is a string" 的首址,两个地址相减,得出位置12,也就是说"r"在字符串"This is a string"的第12位置

是减号运算符,string是数组名,代表数组的首地址,ptr是字符指针,经过ptr = strchr(string, c);后,这个指针指向C在string中的位置,它肯定在首地址string的后面,至于在它后面多远,则是通过ptr-string来计算,所以它用%d格式输出

'-'在这里当然是减号运算符,ptr-string表示计算字符指针ptr和string之间的距离。注:前面的代码
ptr = strchr(string, c);
使得ptr得到string字符串中第一次出现字符'r'的位置。

ptr-string是函数strchr()返回给指针的一个值.这个是字符c在字符串string里第一次出现的位置."-"只是个分隔符号.