源文件就有问题.
最后结果是abcbcc
程序改为如下,在VS2005下可以运行
#include
//包含string,所以就可以用strcpy这个字符串复制函数
#include
//包含stdio.h,这样就可以用printf
void main()
{
char ch[]="abc",x[3][4];
//建立字符串一惟数组ch,和二唯的x,字符串ch已经被定义了大小,是ch[4],最后是字符串结束标志"\0",自动加上的。
int i; //循环用的i
for(i=0;i<3;i++)
strcpy(x[i],ch);//把ch里的内容,给x[i]
//最后x中的内容就是x[0]="abc\0",x[1]="abc\o",x[2]="abc\o"
for(i=0;i<3;i++)
printf("%s",&x[i][i]); //输出的时候就不一样了,因为里面是%s,所以从x[i][i]开始输出,直到输出到"\0"的时候,就停止
printf("\n"); //换个行
getchar();//等个按键,方便咱们看最后结果。
}
#include
main() /*主函数*/
{char ch[]="abc",x[3][4];int i; /*定义ch数组 二维数组X 并赋初始值*/
for(i=0;i<3;i++) strcpy(x[i],ch); /*一共循环3次 每次循环把CH数组的值复制到X数组的横列中 循环后X[0]=abc,x[1]=abc,x[2]=abc*/
for(i=0;i<3;i++) printf("%s",&x[i][i]);/*这里有点问题!",x[i][i]这里是不是你发错了!按理应该是为x[i]才对 因为输出里的符号是%S!要不%C还能理解 !你想看看吧!有问题在留言*/
printf("\n"); /*每次输出一次字符串后结尾加回车换行符 主要是为了区分每条字符串用的!*/
}
我觉的原文件大体没什么问题!!给个 旗子吧 !!嘿嘿
strcpy(x[i],ch) //把ch复制给x的第i行结里为abcabcabc
printf("%s",&x[i][i]); //这里取地址符"&"做什么用? 这句话表示把x[i][i]的地址(整型)转化成字符串
没有"&"结果为abc