急求一段C语言程序。定义一个二维字符数组,3行10列;输入3个单词;输出3个单词;

Python013

急求一段C语言程序。定义一个二维字符数组,3行10列;输入3个单词;输出3个单词;,第1张

根据你的要求编写的C语言程序如下:

#include<stdio.h>

int main()

{

 char a[3][10]

 int i

 printf("Please input three words:\n")

 for(i=0i<3i++){

  scanf("%s",a[i])

 }

 printf("Output:\n")

 for(i=0i<3i++){

  printf("%s\n",a[i])

 }

 return 0

}

运行结果:

二维数组也是“数组的数组”所以定义一个指向由m个元素组成的一维数组指针即可指向二维数组的首元素地址。

如:

char arr[2][2] = { { 'a', 'b' }, { 'c', 'd' } }

char (*p)[2]

p=arr // p指向首元素地址。

char c = *(p[0]+ 1)// 指向0行1列 即字符b

这个没有办法。因为数组的数组名虽然本质上是一个指针,但它是一个

指针常量

,也就是说a[0]是指针没错,但a[0]=a[1]这样是错误的。因为无法对a[0]重新赋值。所以你说的这种没有办法实现,这是C/C++的规则限定的。除非你用指针p,q来代替a[0]、a[1]。