|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
#include <string.h>
int main()
{
char *array[5] = {"FishC", "Five", "Star", "Good", "Wow"};
char *(*p)[5] = &array;
int i, j;
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
if (i > strlen((*p)[j]) - 1)
{
break;
}
printf("%c ", (*p)[j][i]);
}
printf("\n");
}
return 0;
}其中if (i > strlen((*p)[j]) - 1)这句不是很明白,小甲鱼老师说是实矩阵转制,把i和j俩个循环变量调换一下位置,但这调换的条件就不是很明白。
对于你这个程序来说,strlen((*p)[j])的意思就是计算每个字符串的长度,比如说strlen((*p)[2])就指的是"Star",它的长度就是4
if (i > strlen((*p)[j]) - 1) 这句的意思,举个栗子:
假设i当前在打印"FishC"里面的最后一个大写C,那么此时i的值是4,j从0开始计数,
if判断的时候,"FishC"的长度是5,减一后是4,判断4>4不成立,所以才把 C 这个字符打印出来了,
接下来j是1了,判断 "Five"长度是4,减一后是3,判断4>3成立,所以就break了...以此类推
|
|