首页 > 其他分享 >C语言-用指针遍历二维数组

C语言-用指针遍历二维数组

时间:2024-10-14 13:48:38浏览次数:3  
标签:11 10 遍历 int C语言 12 数组 指针

一、1.用一级指针遍历二维数组

 7 #include <stdio.h>
  8
  9 int main(int argc, char *argv[])
 10 {
 11     int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
 12     int *p;
 13     p=*a;
 14     int i;
 15     for(i=0;i<12;i++){
 16  if(i!=0 && i%4==0)
 17      puts("");
 18  printf("%d ",*p);
 19  p++;
 20 }
 21 puts("");
 22     
 23     return 0;
 24 } 

2.运行结果

1 2 3 4
5 6 7 8
9 10 11 12

只需要注意一下if判断语句的条件即可。

二、1.用指针数组遍历二维数组

技巧:可以把3行4列的二维数组看成是3个一维数组,只不过是每个一维数组里面有4个元素

  7 #include <stdio.h>
  8 
  9 int main(int argc, char *argv[])
 10 {
 11     int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
 12     int *p[4]={a[0],a[1],a[2]};//(*p)[4]的[4]可以认为代表4列
 13     int i,j;
 14     for(i=0;i<3;i++)
 15     {   
 16         for(j=0;j<4;j++)
 17         {
 18  printf("%d ",p[i][j]);
 19 }
 20 puts("");
 21 }   
 22     
 23     return 0;
 24 } 

2、运行结果

1 2 3 4 
5 6 7 8 
9 10 11 12 

三、1.用数组指针遍历二维数组

只需要修改指针数组中的定义以及指向就行

7 #include <stdio.h>
  8 
  9 int main(int argc, char *argv[])
 10 {
 11     int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
 12     int (*p)[4]=a;//(*p)[4]的[4]可以认为代表4列
 13     int i,j;
 14     for(i=0;i<3;i++)
 15     {   
 16         for(j=0;j<4;j++)
 17         {
 18  printf("%d ",p[i][j]);
 19 }
 20 puts("");
 21 }   
 22     
 23     return 0;
 24 } 
   

2.运行结果

1 2 3 4 
5 6 7 8 
9 10 11 12 

四、1.数组本身的遍历

7 #include <stdio.h>
  8 
  9 int main(int argc, char *argv[])
 10 {
 11     int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
 12     int i,j;
 13     for(i=0;i<3;i++)
 14     {
 15         for(j=0;j<4;j++)
 16         {
 17  printf("%d ",a[i][j]);
 18 }
 19 puts("");
 20 }
 21 
 22     return 0;
 23 }   
~             

2.运行结果

1 2 3 4 
5 6 7 8 
9 10 11 12 

标签:11,10,遍历,int,C语言,12,数组,指针
From: https://blog.csdn.net/qq_63297756/article/details/142914283

相关文章

  • C语言实现将一个输入的十进制数转换为二进制输出
    一、意义  由于计算机是由一系列电子元件组成的,这些元件只能处理两种状态:开和关。这两种状态可以用二进制表示,其中0代表关闭状态,1代表开启状态。因此,计算机只能存储和处理二进制数。二、原理方法除二取余法是一种将十进制数转换为二进制数的方法。其原理如下:将待转换的......
  • C语言学习3
    二分法查找    二分法查找,也称为折半查找,是一种在有序数组中查找特定元素的高效算法。该算法的基本思想是将数组分成两半,比较中间元素与目标值的大小,然后选择一半继续查找,直到找到目标值或确定目标值不存在。步骤确定数组的左右边界索引,通常左边界为0,右边界为数组......
  • 初始C语言
    目录引语计算机语言的发展一.c语言的定义第一个c语言程序二.数据类型1.数据类型大小计算机单位换算......
  • Wx64ST:一款轻松可修改的C语言Shellcode模板
    原创Alpha_h4ckFreeBuf关于windows_x64_shellcode_templatewindows_x64_shellcode_template简称为Wx64ST,它是一款功能强大的Shellcode模板,该模板基于C语言编写,其简单、可扩展和易于修改等特性可以帮助广大安全研究人员轻松开发适用于Windowsx64的Shellcode。值得一提的是,......
  • java中如何在集合遍历过程中删除元素(5种方法对比、案例、常见的错误及其后果)
    在Java开发中,集合遍历过程中删除元素是一个常见但容易出错的操作。不同的集合类型(如ArrayList、HashSet)有不同的处理方式,而错误使用则可能导致ConcurrentModificationException异常。本文将全面分析该问题的根源,提供最佳实践、对比不同方法,并通过案例展示具体实现。一、问......
  • C语言——指针全解
    目录一、指针变量  二、指针和指针类型        1、指针类型        2、指针变量大小 三、指针类型的意义        1、解引用         2、指针+-整数         3、void*指针类型 四、野指针 五、指针的运算     ......
  • C语言——自定义类型
    目录一、结构体        1、结构体的定义与声明        2、结构体变量的定义和初始化        3、结构体的自引用         4、结构体的内存对齐         5、为什么要结构体的内存对齐                1、性能......
  • (C语言)算法数据结构
    王道数据结构以及本人上课的笔记             ......
  • 与C语言的旅程之分支与循环
                    C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,        C语⾔是能够实现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种结构的组合。        我们......
  • C语言分支与循环的学习(小知识)
    学习目录 1.if 表达式成立(为真),则语句执行;表达式不成立(为假),这语句不执行。    注解:C语言中,非零表示真,0表示假。如果一个表达式的结果不是0,这语句执行。反之,则语句执行。实例:输入一个整数,判断是否为奇数该程序的执行逻辑是包含头文件#include<stdio.h>,输入主函数,......