C语言的行指针

C语言之指针用法 指针的用法 阅读详情

今天复习指针的时候看到书上讲二维数组中的两类指针:

  • 一类是元素指针
  • 一类是行指针

元素指针指向一个元素,行指针指向整个行。(这里比较难以理解的是行指针)

行指针可以转化为元素指针,方法是在前面加一个”∗”,指向改行的第一个元素。也就是说加上了”∗”之后,它还是一个地址。

代码

#include <stdio.h>
#include <string.h>
#define M 2
#define N 2
int main(int argc, char const *argv[])
{
    int a[M][N] = {{1, 2}, {3, 4}};
    int b[M] = {1, 2};
    int (*p)[N];
    p = a;
    int *q[N];
    // q = a;
    printf("%d\n", *a);
    return 0;
}

其中a在操作之后仍然是一个指针,包含的信息是地址。

C语言指针重点难点整理(详解)(包括一维数组,二维数组的元素指针,二维数组的行指针做函数参数,指针数组,行指针数组) C语言指针重点难点整理(详解)(包括一维数组,二维数组的元素指针,二维数组的行指针做函数参数,指针数组,行指针数组) 笔者学指针之前: 呵呵,听闻指针是C语言的难点,我倒要见识一下,到底有多难 笔者学完指针之后: 我还是收拾行囊,离开吧! 但是,在我的内心经过反复的挣扎,终于我决定,我要战胜它,现在,笔者已经大概弄清楚了指针的知识点,今天周末,刚好整理一下指针的一些难以理解的地方,和一些重点... 阅读详情

相关推荐

Oracle EBS报表开发入门:Report Builder安装避坑指南(Win10/11兼容版)

本文详细介绍了在Windows 10/11系统上成功安装和配置Oracle Report Builder的完整避坑指南。通过修改系统兼容性、解决虚拟内存报错、正确设置NLS_LANG和TNS连接等关键步骤,确保开发环境稳定运行。同时,阐述了Report Builder与BI Publisher在现代Oracle EBS报表开发中的协作定位与工作流,帮助开发者高效搭建报表开发环境。

d6e7f8的博客 754

【C++】二维数组的行指针和列指针

在C++中,数组与指针有密切的关系。任何通过数组和下标实现的表达式可等价地通过指针和偏移量实现。下面首先介绍一维数组与指针的关系,之后介绍二维数组的行指针和列指针。

zzy979481894的博客 1万+

ComfyUI-Impact-Subpack插件安装避坑指南:为什么你的UltralyticsDetectorProvider节点还是找不到?

本文深入解析了ComfyUI-Impact-Subpack插件的安装与排障问题,特别是针对UltralyticsDetectorProvider节点缺失的常见问题提供了详细的解决方案。从底层机制到高阶应用,涵盖了手动安装、模型配置、性能优化等关键步骤,帮助用户彻底解决插件依赖关系断裂问题。

Jerry的专栏 1152

行指针

行指针一般用于二维数组中,指向每行元素的首地址; 定义形式:int (*p) [5] ; 表示方法:直接在p上偏移就是行,在*p上偏移就是列 #include void main(){     int n[][3] = {10,20,30,40,50,60};     int (*p)[3];     p=n;     cout",""," }  

hongqianshen的博客 5213

UniApp实现多端支付功能完整实现指南

支付业务流程多端支付实现安全性保障异常处理最佳实践支付基础知识多端支付实现统一支付封装安全性处理异常处理最佳实践根据具体业务场景选择合适的支付方式注重安全性和用户体验做好异常处理和日志记录持续优化和改进支付流程关注我,持续分享前端项目开发经验!

weixin_63454527的博客 2129

保姆级教程:在DolphinScheduler 3.x中配置Apache SeaTunnel任务(Flink/Spark双引擎)

本文提供了一份详细的教程,指导如何在DolphinScheduler 3.x中配置Apache SeaTunnel任务,支持Flink和Spark双引擎。从环境准备、脚本选择到配置文件编写和任务调度优化,涵盖了所有关键步骤和常见问题解决方案,帮助用户高效集成SeaTunnel到海豚调度系统中。

weixin_42524945的博客 194

(CED)列指针与行指针的联系与区别

一、列指针(竖为列) 1、列指针相关定义 列指针:被称为是指针变量指向二维数组的某个元素 一般使用时会有如下定义: int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int *p; 而上述代码定义的指针p,一般按照下表方式指向二维数组a中的元素: 语法 样例 ...

Cat 8736

炼丹-Pyecharts: JupyterLab无法render_notebook

炼丹-Pyecharts: JupyterLab无法render_notebook问题描述Jupyter-Lab 环境下render_notebook显示空白 问题描述Jupyter-Lab 环境下render_notebook显示空白 首先需要使用pyecharts自带的config来申明一下使用pyecharts的运行环境 from pyecharts.globals import Curre...

MichaelZzzzz的博客 4689

C语言:行指针和列指针

int* a; //a是指向整形的指针; int* a[5]; //a是一个一维数组名(该数组包含5个元素,每个元素类型是指向整形的指针); //a表示的是数组(a称指针数组); //从数组元素角度看,a的值是首元素地址,a+1是第二个元素地址...; int (*a)[5]; //a是指向一维数组的指针(这里每个一维数组含5个整形元素); //a的值是第一个一维数组的首元素地址,a+1是第二个一维数组的首元素地址...(a是数组指针);

sudazf的专栏 4万+

从URDF到Gazebo:一个完整的ROS2机械臂仿真项目实战与避坑指南

本文提供了一个完整的ROS2机械臂仿真项目实战指南,详细讲解了从URDF建模、ROS2 Control配置、MoveIt2集成到Gazebo仿真的全流程。文章重点分享了URDF惯性参数设置、Gazebo插件选择、MoveIt2配置修正等关键步骤的避坑经验,帮助开发者快速搭建可用的六轴机械臂仿真环境,实现从静态模型到物理仿真的跨越。

weixin_29279153的博客 275

电流镜设计实战:从基础到高级技巧(附常见问题解决方案)

本文从工程实战角度,系统讲解了电流镜设计从基础原理到高级技巧的全过程。深入剖析了匹配精度、输出阻抗等核心矛盾,并详细介绍了共源共栅(Cascode)结构如何平衡电压裕度与输出阻抗。文章还重点探讨了工艺偏差、版图应力效应等实战中的“隐形杀手”,并提供了常见问题的解决方案与调试技巧,旨在帮助工程师设计出鲁棒性更强的模拟电路。

blockchain9miner的博客 734

c语言行指针如何表示,关于C语言行指针的详细解析

From:http://soft.chinabyte.com/database/339/12423339.shtml最近在百度知道里面发现很多学习初学者搞不清楚行指针的具体概念,今天在这里作下详细的解释分析。行指针,顾名思义就是指向一行的指针。那么哪里会用到行指针呢,用的最多的,那就是二维指针了,大家都知道,我们通常把二维指针看成一个行列式,但是它在内存中的排序却是和一维指针一样的。比如组a[2]...

weixin_34063855的博客 3750

5分钟搞定!用MCU GPIO实现零功耗一键开关机电路(附完整原理图)

本文详细介绍了如何利用MCU GPIO设计零功耗一键开关机电路,适用于便携式设备和电池供电项目。通过软硬件结合的方式,实现关机状态下的真正零功耗,同时提供智能开关机控制。文章包含完整原理图、元件选型指南和实际搭建技巧,帮助开发者在5分钟内完成高效电源管理方案。

weixin_28339967的博客 344

C语言的行指针和列指针

一、定义二维数组 <1>定义方式 数据类型 数组名[行数][列数]; 例如: int a[3][4]; =====>3行4列 C语言对二维数组采用的这种特殊的定义方式,使得二维数组可以被看作一种特殊的一维数组:它的元素又是一个一维数组。例如: 上图中的a可以看出是一个一维数组,他有3个元素: a[0],a[1],a[2]. 每个元素又包含四个一维数组。 a[0]----------->a[0][0] a[0][1] a[0][2] a[0][3] a[1]------

Danny_llp的博客 5711

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

c语言列指针的形式,C语言:行指针和列指针

本文主要介绍C语言二维数组中的行指针及列指针,目的是为了搞清二维数组或更高维数组在作为函数参数进行传递时,考虑到代码的可复用性及软件最小权限原则,如何声明该形式参数。学习笔记,仅供参考,如有错误,敬请指出。一.行指针在说行指针之前,先看几种指针类型(以int为例):int* a;//a是指向整形的指针;int* a[5];//一维指针数组(这里存放着5个指向整形的指针),a指向第一个元素的地址,a...

weixin_34252946的博客 2266

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

行指针和列指针-专题分析(转至汪老师的C语言)

<br />指针与多维数组<br />(主要指二维数组)<br />int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};<br /> <br /><br />换个角度看世界:<br />如首行一样,将首行视为一个元素,一个特殊的元素,这个“特殊的”元素是一个一维数组。那么这个二维数组是由是由三个“特殊的”元素组成的一个“特殊的”一维数组。<br />a是这个“特殊的”一维数组的名称,也就是首地址,也就是第一个元素的地址,也就是第一行的首地址,是指首行一整行,并不是指某个

haussuden的专栏 2万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C语言--行指针与列指针

行指针和列指针是我们在学习指针处理二维数组时遇到的知识难点。在这里我结合资料为大家做一些分析。 首先数组的访问有三种形式:1)下标法;2)首地址法;3)指针变量法。这里我们先分析首地址法。 假设有一个二维数组a[3][4],a就是首地址,他是一个指针是一个常量,指向第一个元素的地址,也就是指向第一行的首地址,是指首行一整行,并不是指某个具体元素。那么我们称之为“行指针”。同理:a+0,

cherish_xmm的专栏 2570

c语言列指针的形式,行指针和列指针-专题分析(转至汪老师的C语言)

指针与多维数组(主要指二维数组)int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};换个角度看世界:如首行一样,将首行视为一个元素,一个特殊的元素,这个“特殊的”元素是一个一维数组。那么这个二维数组是由是由三个“特殊的”元素组成的一个“特殊的”一维数组。a是这个“特殊的”一维数组的名称,也就是首地址,也就是第一个元素的地址,也就是第一行的首地址,是指首行一整行...

weixin_34697798的博客 1894

行指针 二维数组 c语言,读书笔记-c语言-二维数组的指针和行指针

1、二级地址与一级地址是完全不同的两种地址。二级指针变量与一级指针变量也是完全不同的两种指针变量,二者决不能互换使用,更不能彼此间赋值。2、一维数组的数组名是假想的指针变量,他是假想的一级指针变量。二维数组名也是假想的指针变量,他是二级指针变量。数组在内存中是“线性存储、按行排列”的。b[1][0]是紧挨在b[0][3]之后的下一个空间,b[2][0]是加你在b[1][3]之后的下一个空间。举例:...

weixin_30624835的博客 927

C语言二维数组与指针数组以及行指针

开篇引题,c语言学习完快半年了,该学的学到了,该忘的也大概忘得差不多了,今儿突发奇想,本不能丢,顾通过博客的形式来热热。望博友们不要笑话。 二维数组,重在其访问方式以及其的物理地址的理解。 以int a[3][5]为例: ![如图] (http://img.blog.youkuaiyun.com/20150331192114229) 如上图: 二维数组归根结底就是线性一维的,其

feastwin的专栏 600

C语言学习:用行指针访问二维数组元素

参考:C语言学习P134。

qq_41708281的博客 306

C语言【利用行指针实现4*4二维数组转置】

如果用行指针,最后输出时可以用*(*p+i)//相当于*(*(p+0)+i) 如果用普通指针,最后输出可以用*(p+i) //行指针 取两次地址,所以定位的时候直接p=a; #include<stdio.h> int main() { int a[4][4]= { {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16} }; int (*p)[4],temp,i,j; p=a; for(i=0;i<4;..

C语言学习笔记 3621

关于C语言行指针的详细解析

  From:http://soft.chinabyte.com/database/339/12423339.shtml   最近在百度知道里面发现很多学习初学者搞不清楚行指针的具体概念,今天在这里作下详细的解释分析。   行指针,顾名思义就是指向一行的指针。那么哪里会用到行指针呢,用的最多的,那就是二维指针了,大家都知道,我们通常把二维指针看成一个行列式,但是它在内存中的排序却是...

weixin_30273175的博客 309

c语言行指针 列指针,行指针列指针

#include using namespace std;int main(){int s1[3];int (*p1)[3] = s1; // error, s1为列指针,p1为数组指针,这里理解为行指针int (*p2)[3] = &s1; // ok, 列指针取地址即为行指针int *p3 = s1; // okint s2[3][4];int (*p4)[3][4] = s2; //...

weixin_29758911的博客 444

C语言基础--深入理解二维数组的行指针和列指针(对于警告从不兼容的指针类型赋值的根本原因和解决方法)

首先上一段代码: 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 5 //套公式: TYPE NAME = VALUE 6 int main() 7 { 8 int a[2][3] = {1,2,3,4,5,6}; 9 int i,j; 13 printf("%p %p\n",a,a+1); 14 for(i = 0;i < 2;i++) 15

嵌入式菜鸟的技术博客 1175

C语言--指针数组;指针数组;行指针

二维数组指针和行指针以及二维数组名都代表什么呢?

m0_64610955的博客 343
上一篇: 卜踆哉数对
下一篇: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
sevanco
博客等级 码龄12年 4粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值