c程序运行结果
#include<stdio.h>
#include<string.h>
void main()
{char ch[]="abcd",x[4][4];int i;
for(i=0;i<4;i++) strcpy(x[i],ch);
for(i=0;i<4;i++) printf("%s",&x[i][i]);}
为啥结果是abcdabcdabcdabcdbcdabcdabcdcdabcdd。我预想的是abcdbcdcdd,请高手帮我解答一下,实在不是小妹吝啬,我确实没有财富值啦,希望大家慷慨解囊啦
对于二维数组,是存岩老姿在一段连续的内存空间。对于“%s”的事字含森符串,遇到'\0'粗绝才算结束。&x[0][0]作为指针输出的字符串是二维数组中的所有字符abcdabcdabcdabcd。&x[1][1]则是bcdabcdabcd &x[2][2]则是cdabcd &x[3][3]则是d。
你输出有问题%s是输出一个字符串数组的,不能输出单个字符,他遇到'\0'才结束输出,如果没有找到'\0',就会一直输出下去,就成了你的这种情况,而且输出不要加&,这是取地址用的,输入单个变量时用
这高仔是我的程序,你对戚羡汪比一下看看
#include<iostream>
using namespace std;
int main()
{
char a[5][5],ch[]="abcd";
int i,j;
for (i=0;i<5;i++)
strcpy(a[i],ch);
for (i=0;i<4;i++)
for (j=i;j<4;j++)
printf("派前%c",a[i][j]);
return 0;
}
x[5][5],
\0还要一个空间