#include< stdio.h>
int main()
{
char *name[] = { "hello" , "world" , "helloworld" }; /* character array */
printf("%s", (*(name+2)+7));
return 0;
}
上面的代码打印出“rld”。我只想打印“r”。
最佳答案
对于初学者,您没有字符数组。你有一个指针数组。另外最好声明数组元素的类型,例如
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 )
关于c - 如何访问字符数组中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49278209/