#include< stdio.h>
int main()
{
char *name[] = { "hello" , "world" , "helloworld" }; /* character array */
printf("%s", (*(name+2)+7));
return 0;
}
上面的代码打印出“rld”。我只打印“r”。
答案 0 :(得分:4)
对于初学者,你没有角色阵列。你有一个指针数组。另外,最好声明像
这样的数组元素的类型const char *
因为字符串文字在C中是不可变的。
而不是%s
说明符,您需要使用说明符%c
来输出一个字符。
输出数组第三个元素的目标字符的简单明了的方法是
printf("%c", name[2][7]);
或者使用指针算法可以写
printf("%c", *(*( name + 2 )+7 ) );
这是一个示范程序
#include <stdio.h>
int main(void)
{
const char *name[] =
{
"hello" , "world" , "helloworld"
};
printf( "%c\n", *( * ( name + 2 ) + 7 ) );
printf( "%c\n", name[2][7] );
return 0;
}
它的输出是
r
r
考虑到根据C标准,不带参数的函数main
应声明为
int main( void )
答案 1 :(得分:3)
使用%c:
printf("%c", *(*(name+2)+7));
答案 2 :(得分:1)