【发布时间】:2023-03-26 19:20:01
【问题描述】:
#include <stdio.h>
#include <string.h>
void print_reverse(char *s)
{
size_t len = strlen(s);
char *t = s + len - 1;
while (t >= s)
{
printf("%c", *t);
t = t - 1;
}
puts("");
}
Above 是一个在屏幕上向后显示字符串的函数。但我不明白第 7 行(char *t = s+ len-1;)。谁能解释一下这是英语口语吗?
【问题讨论】:
-
char *t = s+ len-1;指向字符串的最后一个字符。 -
len元素数组的最后一个索引是什么? -
您可能还想find a good beginners book 了解指针和指针算法。
-
如果
strlen()返回0,这将不起作用。 -
但从技术上讲,该代码是非法的,因为
t在数组传递给它之前将指向1char,并且比较t >= s可能不起作用。
标签: c string function pointers reverse