呵呵,问一个C语言中二维数组的问题。

   更新日期:2024.05.20
  1. 几维可以考虑理解为矩阵。a[2][3]是一个二行三列的矩阵。这个是数据的“形状”。“字符”数组是指这数组中的数据是“字符”这种数据“类型”。类型和形状讲的2回事。当然了,实际上a[x][y]中指的有这么一个数组a[x],x中y个元素。

  2. 如果按矩阵来理解则

                |[0][0],[0][1],[0][2]|

    a[3][3]=|[1][0],[1][1],[1][2]|

                |[2][0],[2][1],[2][2]|

    ->定义时a[x][3]={{1},{2},{3}},其中“{1}”中的{}为某一行里面所有元素的组合,即{1}代表矩阵中第一行的所有数据,因为只有一个,而没有特定说明下数据是由左向右填充的,所以a[0][0]=1。

    ->b因为只有一个{},在填充数据时没有特别说明,所以{}中的数据将按每行3个数据的个数进行填充,如果定义b时{}中有4个数字,则第4个数将填充到b[1][0]中。

  3. strcat和strlen自己baidu去,库函数。



  1. 一维数组存放相同的值,但是如果是矩阵,行列式等类型的,用二维的就比较方便了.至于字符数组,只是说明它里面存放的元素是字符而已.

  2. 注意{{1},{2},{3}}里面的1,2,3是有{}的,在本题中表示每一行中的第一个元素分别为1,2,3.剩下的元素如a[1[2],a[2][2]等就默认是0了.而b[3][3]={4,5,6}这只有一个{},把4,5,6都包进去了。,表示b[0][0],b[0][1],b[0][2]分别为4,5,6.剩下的都为0了.

  3. strcat(s1,s2)是将第二个字符串复制到第一个字符串后面,拼成一个字符串.复制完成后,函数会添加'\0',表示字符串的结束.所以执行完strcat(s1,s2)后实际结果为123ABCDE\0.用strlen取长度,自然就是8了



问题一:其实没必要有二维数组,字符数组可以存放字符
问题二:a的赋值结果为a[0][0]=1,a[1][0]=2,a[2][0]=3,其余为0,如果不写大括号则依次赋值b[0][0]=4,b[0][1]=5,b[0][2]=6,写大括号则每个大括号代表一行
问题三:strcat函数用来连接两个字符串s1、s2,strlen用来计算字符串长度(不含结尾“\0”)

  • 13486542193 :c语言中二维数组(*a)[1]和*a[1]有什么区别,为啥他们的值不一样?_百度...
    温图涛2884 :答:二维数组名是一个指向一个一维数组的指针,a是一个二维数组名,就是一个指向一维数组的指针,一个这样的指针求间接运输(*a),得带的是这个指针所指向的一维数组的数组名,在此是 a[0], 数组名加一个下标就是数组元素值,(*a)[1]就是 第0行数组的第1个元素 a[0][1]-->2 a[1]->...
  • 13486542193 :C语言二维数组有多少元素
    温图涛2884 :答:int a[3][4];//这是定义一个3行4列的二维数组,3*4=12个元素 int a[5][6];//这个就定义了一个5行6列的二维数组,5*6=30个元素 C语言的下标是从0开始编号的,编到行数与列数减1的位置,如int a[3][4]a[0][0] a[0][1] a[0][2]a[1][0] a[1][1] a[1][...
  • 13486542193 :C语言二维数组问题 将一个三行四列的二维整形数组中的最大值和最小值...
    温图涛2884 :答:} } alert('最大值'+max);} functionmin(arr){ varmin=arr[0][0]for(vari=0;i<3;i++){ for(varj=0;j<4;j++){ if(min>=arr[i][j]){min=arr[i][j];} } } alert('最小值'+min);} vara=[[1,2,3,4],[1,2,3,4],[1,2,3,4]]shuzu(a);max(a);min(a);...
  • 13486542193 :C语言二维数组定义是什么,然后int a[1][2]是代表什么意思?怎么用这个二 ...
    温图涛2884 :答:C语言二维数组定义的一般形式是:类型说明符 数组名[常量表达式1][常量表达式2]int a[1][2]的意思是,定义了一个int类型的,数组名为a的,具有1行2列的数组 你可以把这个二维数组想像成一个表格,这个表格有1行2列,每个格子中可以放入一个int型数据。数组使用就是用数组下标来访问数组中的元素,...
  • 13486542193 :在计算机C语言中,二维数组,a[][3]={1,2,3,4,5,6,7,8,9};a[0][0]=...
    温图涛2884 :答:二维数组初始化时,可以采用上面这种方式,系统会根据总个数和第二位的长度算出第一位的长度。 上面数组中总共有9个元素,每行有3个元素,可以确定行数是3,也就是a[3][3]。另外数组中的元素是按行存放的,先存第一行,再放第二行,依次存放。还有就是数组的下表是从0开始,如果有3个元素...
  • 13486542193 :c语言中如何通过二级指针来操作二维数组
    温图涛2884 :答:1、首先我们打开电脑里的C语言软件,新建一个工程和.c文件,输入头文件和主函数。2、然后我们输入图示代码初始化数组,定义变量类型。3、然后我们输入图示代码用for语句实现数组的访问。4、然后我们输入图示代码进行输出。5、然后我们输入图示代码编译、运行,即可通过二级指针来操作二维数组。
  • 13486542193 :C语言如何求一个二维数组有几行,还有为什么会提示gets()是一个未定...
    温图涛2884 :答:C语言中求一个二维数组有几行的方法如下:假设有定义int nums[10][20];二维数组行数可以用sizeof计算:rows = sizeof(nums)/sizeof(nums[0]);第二个问题,为什么gets会提示未定义标识,有两种可能:一、编译器支持gets库函数,但是你没有包含头文件#include<stdio.h>;二、编译器本身不支持gets库...
  • 13486542193 :c语言中一个整数(int)二维数组可以设置最多多少行跟多少列
    温图涛2884 :答:想开大的数组,可以用动态分配。定态数组,作为全局量可以开得大。例如:include <stdio.h> int a[1001][1001]; // 全局量 main(){ a[1000][1000]=1000;printf("%d",a[1000][1000]);return 0;} 若放到 main(){} 里,就是局部量,就不能用这么多单元了。
  • 13486542193 :C语言中求一个二维数组的一维数组的长度有什么函数
    温图涛2884 :答:strlen(str) 首先说说它,str[20]={'a','b','c','\0'};printf("%d",strlen(str));输出的值为3,而不是20,因为strlen认\0的,\0就认为结束。sizeof(str)则不管\0,定义多大数组就显示多大。1 4 6 2 6 3 3 0 4 7 5 3 这是一个二维数组 a[4][3]它可以...
  • 13486542193 :c语言中能把一个二维数组的值赋给一个一维数组吗
    温图涛2884 :答:当然可以了。例如:include <stdio.h>void main(){int i,j,k=0,a[2][2]={1,2,3,4},b[4];for(i=0;i<2;i++)for(j=0;j<2;j++){b[k]=a[i][j];k++;}for(k=0;k<4;k++)printf("%d ",b[k]);}运行结果:就是将一个2×2的二维数组的值按顺序赋给一个一维数组...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网