我使用了char数组:
char *strs[3] = {"foo", "bar", "bletch"};
LCDPutStr(*strs, 17);
输出为foo
。如何选择其他项目?例如,来自数组的bar
或bletch
。
答案 0 :(得分:1)
strs
是char *
的数组。 C中的数组的起始索引为0,并使用[]
编制索引。
因此,如果你想要第二个元素,你可以使用strs[1]
。
答案 1 :(得分:0)
我会尝试为dummys解释它。
strs
是strings
的数组。没有&
或sizeof
运算符strs
会转换为指向数组第一个元素的指针。第一个元素是一个指向字符串的指针(所有元素都是).Imagine strs
成为一个双指针。现在你有一个双指针指向一个字符串的指针。当你取消引用strs
时,你得到了字符串的地址。strs+1
将指向第二个元素。旁注:我看到很多新的C程序员都在做这个错误strs++
。你不能这样做。
现在说*strs
会得到第一个字符串的地址。它相当于*(strs+0)
和strs[0]
。有趣的是,*(strs+0)
是等价的至*(0+strs)
使0[strs]
成为可能。
再次取消引用它会为您提供字符串的字母。例如,strs[0][0]
将为您提供'f'
。它相当于**strs
和*(*(strs+0)+0)
。