首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C 语言】二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 )

文章目录 一、二维数组 1、二维数组声明及初始化 2、二维数组遍历 3、二维数组排序 二、完整代码示例 一、二维数组 ---- 前几篇博客中 , 介绍的是指针数组 ; 指针数组 的 结构特征 是 ,...数组中的每个元素 , 即每个指针变量 可以 指向不同大小的 内存块 ; 二维数组 与 指针数组 的结构不同 , 二维数组 的 内存结构 是整齐的连续的 内存块 , 每个 一维指针 指向的内存块 的大小都是相同的..., 并且这些内存块 还是连续的 ; 1、二维数组声明及初始化 二维数组声明及初始化 : // I....二维数组 char array[4][10] = {"abc", "123", "258", "sfd"}; 2、二维数组遍历 二维数组遍历 : // II....; // 使用指针访问 //printf("%s\n", *(array + i)); } 3、二维数组排序 二维数组排序 : 对二维数组进行排序 , 不能单纯的交换指针指向

1.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C语言二维数组

    有同学在面对二维数组的时候,常常会犯浑。尤其是使用函数传参的时候,有老师讲到一维数组传参后就等价于一级指针,部分同学举一反三自学成才,想当然地认为二维数组传参后就等价于二级指针,这是错误的。...假如,有如下代码: int a[2][3]; // 一个二维数组 function(a); // 将二维数组传参给一个函数 上述代码中,就是将一个二维数组传递给一个函数,那么这个函数怎么接受这个参数呢,...void function(int (*a)[3]) // 这也是对的 { } 千万别写成这样: void function(int **a) // 这是错的 { } 究其原因,还是回到以前提过多次的数组与指针的结论...:任何数组,都将被一律视为一个指向其首元素的指针。...因此以下两行代码是等价的: function(a); function(&a[0]); 对于二维数组 int a[2][3] 而言,其首元素就是一个 int [3] ,因此&a[0]就是一个指向 int

    3.3K20

    C语言 | 二维数组

    C语言二维数组的定义 一般形式 类型说明符 数组名[常量表达式][常量表达式] int a[10][6],b[3][4]; 用矩阵形式表示二维数组,是逻辑上的概念,能形象地表示出行列关系,而在内存中,...C语言二维数组的引用 引用形式 数组名[下标][下标] 定义a为3*4的二维数组int a[3][4]; 在引用数组元素时,下标值应在已定义的数组大小的范围内。...C语言二维数组的初始化  为了使程序简洁,常在定义数组的同时,给各数组元素赋值,这称为数组的初始化。 分行给二维数组赋初值。...C语言二维数组案例 #include//头文件 int main() //主函数 {   int array[2][3]={1,2,3,4,5,6};//二维数组定义并初始化   printf...100道C语言源码案例请去公众号:C语言入门到精通

    1.4K30

    C语言二维数组

    我们在实际问题当中很多量是由二维或者是多维的,因此 C 语言允许构造了多维数组。多维数组的元素有多个下标,以标识它的数组中的位置,所以也称为多下标变量。本片文章介绍的是二维数组。...在 C语言中,二维数组是按行排列的,即按行顺序存放,先存放 array[0] 行,再存放 arrar[1] 行,接着存放 array[2] 行。每行有 3 个元素,也是其依次存放的。...注意:在C语言中,二维数组是按行排列的。...printf("请输入各科学生的成绩:\n"); for (i = 0; i < 3; i++) { printf("\n一门学科入5次成绩\n"); if (i == 0) printf...根据这样的分析,一个二维数组也可以分解为多个一维数组C语言允许这种分解。 例如,二维数组a[3][4]可分解为三个一维数组,它们的数组名分别为 a[0]、a[1]、a[2]。

    1.7K10

    初识C语言二维数组

    一维数组只有一个下标,称为一维数组,其数组元素也称为单下标变量。在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以标识它在数组中的位置,所以也称为多下标变量。...本节只介绍二维数组,多维数组可由二维数组类推而得到。...如何在一维存储器中存放二维数组,可有两种方式:一种是按行排列, 即放完一行之后顺次放入第二行。另一种是按列排列, 即放完一列之后再顺次放入第二列。 在C语言中,二维数组是按行排列的。...-- 张 王 李 赵 周 Math 80 61 59 85 76 C 75 65 63 87 77 Foxpro 92 71 70 90 85 可设一个二维数组a[5][3]存放五个人三门课的成绩。...根据这样的分析,一个二维数组也可以分解为多个一维数组C语言允许这种分解。

    2.6K40

    C 语言】二级指针作为输入 ( 二维数组 | 抽象业务函数 | 二维数组打印函数 | 二维数组排序函数 )

    文章目录 一、抽象 二维数组 业务函数 1、二维数组 打印函数 2、二维数组 排序函数 二、完整代码示例 一、抽象 二维数组 业务函数 ---- 1、二维数组 打印函数 注意 , 二维数组 作为 函数参数...输入到函数中 , 不能传入 二维指针 ; 此处遍历时 , 注意指针的步长 ,传入一个二级指针 char ** , 会出错 , 如果传入 二级指针 , array[i] 等同于 *(array + i).../ 使用指针访问 //printf("%s\n", *(array + i)); } return 0; } 2、二维数组 排序函数 二维数组排序时 , 也不能传入二维指针作为形参...打印二维数组中的字符串 print_str(array, num); // III....二维数组排序 // 对 指针数组 进行排序 , 排序依据是 指针 指向的数据对比 sort_array(array, num); // IV.

    85730

    C语言一维数组二维数组、字符数组C语言学习笔记】

    一维数组二维数组,字符数组,字符串常用函数。 1.数组:一组有序数据的集合。 同一数组中每个元素的数据类型(int long short double float char...)必须相同。...int a[]={1,2,3,4,5,6,7,8,9,0}; 二维数组的定义: 一般形式:数据类型 数组名称常量 例如:int a[5][5] 定义了一个整型二维数组数组中的每一个元素都是整型。...a表示数组名称,表示首行元素的地址,a是常量。 数组有5行,5列,二维数组行、列的下标是从0开始的。 数组的每一个元素在内存中都是按行连续存放的。...二维数组的初始化: 1.分行给二维数组赋值 int a[3][4]={{1,2,3,4},{4,3,2,1},{5,6,7,8}}; 2.将每个元素写在一个花括号内 int a[3][4]={1,2,3,4,4,3,2,1,5,6,7,8...int a[][4]={1,2,3,4,4,3,2,1,5,6}; 5.定义全0数组 int a[3][4]={0}; 字符数组 数组的每一个元素都是字符 字符串: 结束符:‘\0’ c语言规定用字符‘

    1.4K10

    C语言二维数组-学习十三

    二维数组 一般形式: 类型说明符 数组名 [常量表达式] [常量表达式]; 例如 int a[3][4]; 说明了一个三行四列的数组数组名为a,其下标变量的类型为整型。...二维数组在内存中的存放 二维数组在概念上是二维的,但是,实际的硬件存储器却是连续编址的也就是说存储器单元是按一维线性排列的。 在C语言中,二维数组是按行排列,即放完一行之后顺次放入第二行。...二维数组的引用 一般形式: 数组名 [下标] [下标] 例如 b[1][2]=a[2][3]/2; 下标可以是整型表达式。...例如: int a[3][4]; a[3][4]=3;错误 定义a为3行4列的数组,下标从0开始,行的最大下标为2,列最大下标为3 二维数组的初始化 分行给二维数组赋初值。...,存到另一个二维数组中。

    89920

    C语言:字符数组输入输出

    输入后各个字符数组的状态如下(摘自C语言谭浩强第三版): 0 1 2 3 4 5 6 7 8 9 a n a n \0 \0 \0 \0 \0 \0 i s \0 \0 \0 \0 \0 \0 \0...为了解决scanf函数不能完整地读入带有空格字符的字符串,C语言提供了一个专门用于字符串的函数gets,它读入全部字符(包括空格),直到遇到回车为止。...注:只要遇到空白字符就结束输入,空白字符包括空格、tab、enter 用gets输入 gets(字符数组) 从终端输入一个字符串到字符数组,并且得到一个函数值。该函数值是字符数组的起始地址。...gets()函数并不读取换行符'\n',它会把换行符替换成空字符'\0',作为c语言字符串结束的标志。...C语言字符数组与字符串的种种   https://mp.csdn.net/postedit/84500208 #include void printByChar(char c[], int

    4.5K10

    C语言简单说】十八:二维数组

    = 这一节我们来说二维数组,啥叫二维数组?之前我们那个是一维数组,好了,我们接下来大家就会慢慢的搞懂的。 我们的一维数组就像 一列排得整整齐齐的队伍,我们的二维数组就是把这一列长队分成了几个小分队。...我们之前的一维数组是这样的: int a[10]={1,2,3,4,5,6,7,8,9,10}; 我们的二维数组就是 int a[2][5]={1,2,3,4,5,6,7,8,9,10}; 不要担心,其实很简单的...后面的 [5]就表示每一队都有5个=。=。 刚刚我们说了,我们的1-5是一个队对吧?那么怎么表示第一队? 我们的a[0][0]就 表示我们第一队的第一个,我们第一个是不是1?...那么a[0][0]就表示第一个队的第一个1。为什么是a[0][0]呢?我们之前是不是说过a[0]就代表第一个了?记住,在数组里面第一个的索引是0表示。好了那么第一个队的第二个2怎么表示?...以此类推 那么我们现在来表示第二队的第一个那就是a[1][0],第二个a[1][1]第三个书a[1][2]以此类推,看下面代码: #include #include<stdlib.h

    77810
    领券