本篇文章给大家谈谈c语言实现二维数组,以及二维数组 c语言对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、c语言二维数组2、c语言二维数组实例3、c语言怎么创建二维数组
c语言二维数组
这个就是指针数组和数组指针的区别了,我当年也在这里转了很久,希望我下面所说得可以帮到你。
首先,明确编译器是怎么识别*s[]和(*s)[]两种形式的代码的。对于*s[],编译器会以默认的右结合的方式进行识别,所以首先识别s[],这是一个数组,然后再识别*,说明这个数组的元素都是指针。所以最后的结果就是:这是一个“以指针为元素的数组”,简称指针数组。而对于(*s)[],由于()的优先级高于*,所以编译器会先识别()里面的,也就是先识别*s,所以它是一个指针,然后()说明这个指针指向的是一个数组,所以最后的结果是:这是一个“指向数组的指针”,简称数组指针。
好吧,我承认一点,就是这两个东西看起来复杂,但是其实用起来区别不大,最本质的东西就是,指针数组用到多个指针,数组指针就完全是一个指针跑天下。
看下面一段代码(我偷懒用C++写的,反正这个不是重点):
#include
using
namespace
std;
int
main()
{
//指针数组
*a[2]
int
t1[3]
=
{0,1,2};
int
t2[3]
=
{3,4,5};
int
t3[3]
=
{6,7,8};
int
*a[3];
a[0]
=
t1;
//一个指针赋值
a[1]
=
t2;
//第二个指针赋值
a[2]
=
t3;
//第三个指针赋值
//数组指针
(*b)[3]
int
(*b)[3]
=
new
int[3][3];
for(int
i=0;i3;i++)
for(int
j=0;j3;j++)
*(*(b+i)+j)
=
i*3+j;
//一个指针跑天下
cout
*((*b)+1)
“
“
*(*(b+1))
endl;
system(“pause”);
return
0;
}
最后我想说,其实这个做题的时候有用,自己写的时候还是尽量直接用int[n][m]的方式比较方便,稍微浪费点空间问题不大,重要的是看起来好看,不容易出错。
c语言二维数组实例
以下是几个简单的C语言二维数组实例代码
输出第n行的杨辉三角形:
#includestdio.h
void main()
{
int i,j,n;int a[100][100]={0};//定义一个二维数组。
scanf(“%d”,n);
a[0][1]=1;
for(i=1;in;i++)
for(j=1;ji+2;j++)
a[i][j]=a[i-1][j]+a[i-1][j-1];
for(i=0;in;i++)
{
for(j=1;ji+2;j++)
printf(“%d\t”,a[i][j]);
printf(“\n”);
}
}
样例输入:5
样例输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
将一个n*m矩阵的行和列互换,并输出:
#includestdio.h
void main()
{
int i,j,n,m;
int a[100][100],b[100][100];
scanf(“%d%d”,n,m);
for(i=0;in;i++)
for(j=0;jm;j++)
{
scanf(“%d”,a[i][j]);
b[j][i]=a[i][j];
}
printf(“输出原矩阵:\n”);
for(i=0;in;i++)
{
for(j=0;jm;j++)
printf(“%d\t”,a[i][j]);
printf(“\n”);
}
printf(“输出互换后的矩阵:\n”);
for(i=0;im;i++)
{
for(j=0;jn;j++)
printf(“%d\t”,b[i][j]);
printf(“\n”);
}
样例输入:
2 3
15 46 47
16 3 48
样例输出:
输出原矩阵:
15 46 47
16 3 48
输出互换后的矩阵:
15 16
46 3
47 48
c语言怎么创建二维数组
int a[m][n];//就表示一个m行n列的整型二维数组
在c语言中数组的下标是从0开始的所以,数组a的元素个数可以表示为:a[0][0]-a[m-1][n-1]
例如:
#includestdio.h
int main()
{
int a[3][2],i,j;//定义一个3行2列的整型二维数组a
for(i=0;i3;i++)//依次给二维数组赋值
for(j=0;j2;j++)
scanf(“%d”,a[i][j]);
printf(“\n”);
for(i=0;i3;i++){//输出二维数组
for(j=0;j2;j++)
printf(“%d “,a[i][j]);
printf(“\n”);
}
return 0;
}
/*
运行结果:
1 2
3 4
4 5
1 2
3 4
4 5
*/
c语言实现二维数组的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于二维数组 c语言、c语言实现二维数组的信息别忘了在本站进行查找喔。