写在之前:
此次的归纳来自以下题目,在之后的代码展示是对于此次问题的实践。
题目展示:
若有说明:char *language[ ]={“FORTRAN”, “BASIC”, “PASCAL”, “JAVA”, “C”};
则表达式*language[1]>*language[3]比较的是( )。
字符B和字符J
疑问实践代码展示:
#include <stdio.h>
void main()
{
int i;
char *C[]={
"FORTRAN", "BASIC", "PASCAL", "JAVA", "Cyyuy"};
for(i=0;i<5;i++)
{
printf("C=%s ",C[i]);
if((i+1)%3==0)//为使输出界面可观;作了相应换行处理;
printf("\n");
}
}
首先
char *C[]={“FORTRAN”, “BASIC”, “PASCAL”, “JAVA”, “Cyyuy”};
这实际是个二维字符数组;
printf("C=%s ",C[i]);
和
printf("C=%s ",*(C+i));
这两段输出语句都是把五个字符串元素输出;
若要单个字符输出其语句为:
printf("C=%c ",*C[i]);
这里的输出语句只是把每一个字符串的首地址提供所以输出的为相应的第一个字符:
要指定一个字符串的第几个字符输出其语句为:
printf("C=%c ", *(C[i]+2));
对比这个语句 printf("C=%c ",*C[i]+2);加不加括号的区别
不同在于将目标字符加2
结果:
若想把某一个字符串按规定的数目递增从某一个字符开始输出
其语句为 printf("C=%s ",*(C+2)+i);
结果:
配合循环语句,将2改为i能实现不同字符串的递增数目从某一个字符输出:
注意:
这里的输出格式为%c改为单个字符输出时记得改变输出格式