首页 > 其他分享 >什么是指针数组 和 数组指针

什么是指针数组 和 数组指针

时间:2024-11-01 10:16:19浏览次数:3  
标签:10 指向 int 什么 元素 数组 指针

什么是指针数组

答:就是一个数组,里面存的是指针而已

它的写法可以如下:

int *a[10];

看看,它就是一个指针数组,数组名字当然是a,里面有10个元素,每个元素都是一个int *类型(即存放整型地址的指针)的指针。我们可以这样用,比如:

 

#include<stdio.h>C
int main()
{
    int x=10,y=20,z=30;
    int *a[10];
    a[0]=&x;
    a[1]=&y;
    a[2]=&z;
    //...
    printf("%d  %d  %d\n",*a[0],*a[1],*a[2]);
    return 0;
}

大家可以看到,数组a有10个元素,每个元素都可以存放一个整型的指针,程序当中存放了三个指针,分别是x,y,z的地址,然后进行了输出,请大家理解代码的含义,进而也就理解了指针数组,以及指针数组的用法 

什么是数组指针 

答:就是一个指针,只不过这个指针指向一个数组

什么?还能指向一个数组??没错,你没有看错,的确可以用一个指针指向一个数组,或者,我们也可以叫它为行指针

比如我们,定义一个数组指针,如下:

int (*p)[10];

大家注意看它的写法,因为小括号优先级高的原因,所以p本身是指针的属性,指向的是一个有10个整型元素的一个数组,即所谓的行指针。那么它怎么用,如何用呢,下面给大家代码理解: 

#include<stdio.h>
int main()
{
    int (*p)[10];
    int a[10]={1,2,3,4,5,6,7,8,9,0};
    p=&a;
    printf("%d\n",*(*(p+0)+1));
    printf("%d\n",p[0][3]);
    return 0;
}

大家可以看到我首先定义了一个行指针p,然后定义了一个一维数组a,然后将p指向了a数组,这就是行指针指向了一行数组,类型都是整型,都是有10个元素,因此类型一致。那么注意后面的两个printf,都是通过p来输出数组a当中的两个元素,大家可以看到,都是用到了二维的数组的形式输出,为什么可以呢?原因就在于p是行指针,每次加1也就意味着加一行,因此如果用p来输出a元素的值,需要两个"降级"才可以,就会有这样的写法,请大家上机试验,反复理解 

标签:10,指向,int,什么,元素,数组,指针
From: https://blog.csdn.net/xinfanyyds/article/details/143416548

相关文章

  • 异或运算解决查找数组中出现奇数次元素
            假设有一个数组只有一个元素出现奇数次,需要查找这个出现奇数次的元素,怎么使用时间复杂度为O(n),空间复杂度为O(1),来解决这道题。以下是使用异或来解决这道题:publicstaticintselectOddTimesNum(int[]nums){intresult=0;for(intnum:nums......
  • hotmail和outlook有什么区别
    本文将介绍HotmAIl和Outlook这两个常见的电子邮件服务之间的区别。虽然它们都由Microsoft提供,但它们在一些关键方面存在差异,包括名称、界面、功能和历史。Hotmail是在1996年创建的,是最早的免费Web邮件服务之一。Outlook是一个邮件客户端应用程序,最早是MicrosoftOffice套件的一部......
  • 为什么实现Serializable接口就可以序列化
    在Java中,对象序列化是将对象的状态转换为字节流的过程,以便将其写入磁盘,或通过网络将其发送到另一个运行Java的虚拟机。如果一个类实现了Serializable接口,那么它的对象就可以被序列化。实现Serializable接口允许类的实例在进行输入/输出操作时,可以以平台独立的方式转化为字节流。......
  • Nginx 反向代理为什么可以提高网站性能
    在讨论如何Nginx反向代理可以提高网站性能之前,我们必须理解什么是Nginx以及什么是反向代理。Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。它以其高性能、稳定性、丰富的功能集、简单的配置以及低资源消耗而被广泛使用。反向代理是一种服务器配置方法......
  • 后台业务系统OA,CRM,ERP,HR这类开发用什么前端UI框架更好
    在开发后台业务系统如OA、CRM、ERP和HR时,选择合适的前端UI框架至关重要。本文主要探讨:一、Bootstrap框架;二、AntDesign框架;三、ElementUI框架;四、Vue.js框架;五、React框架。考虑到这些系统的复杂性和对界面的要求,以下框架能够提供高效、统一和用户友好的体验。一、Bootstrap......
  • R 语言中的 prcomp 和 princomp 有什么区别
    在R语言的统计和数据分析中,prcomp和princomp是用于主成分分析(PCA)的两个常用函数。这篇文章将深入探讨这两个函数的区别,包括它们的计算方法、适用场景、输出结果的解读以及它们在实际应用中的优缺点。通过比较分析,读者将能够更好地理解何时使用prcomp,何时使用princomp,以及如何根据......
  • RN 中的createNativeStackNavigator,为什么出现顶部的 header
    在ReactNative中,createNativeStackNavigator是ReactNavigation库提供的一个用于创建原生堆栈导航器的函数。它允许你在应用程序中创建具有堆栈导航功能的屏幕,其中每个屏幕都可以被推送到堆栈上或从堆栈中弹出。createNativeStackNavigator生成的导航器默认包含一个......
  • 模型的中间失忆特性是什么;有位置信息嵌入,为什么还会中间失意;模型中间失意怎么解决
    目录模型的中间失忆特性是什么有位置信息嵌入,为什么还会中间失意模型中间失意怎么解决模型的中间失忆特性是什么定义中间失忆特性模型的中间失忆特性是指在深度学习模型(如循环神经网络RNN、长短期记忆网络LSTM等序列模型)处理长序列数据时,随着序列长度的增加,模型会......
  • 人工智能生产力悖论:为什么大多数人没用上AI工具?
    真正的障碍不是技术,而是思考的时间:虽然像ChatGPT这样的工具确实有潜力带来变革,但我接触的大多数人几乎不用它。就算用的,也只是用来做些总结之类的小活儿。而在这些用户里,只有大约5%的人订阅了高级版,这意味着真正用AI来搞复杂任务的“高手”少得可怜。下面的内容主要来自Shopify......
  • 云服务和传统IT服务在成本和效率上有什么区别
    云服务和传统IT服务在成本和效率方面的区别包括:1.成本结构不同;2.可扩展性和灵活性不同;3.维护和升级的差异;4.安全性和合规性的差异;5.效率和性能的差异;6.灾难恢复和数据备份的差异。成本结构不同在于,云服务通常采用按需付费模式,减少了前期投资和维护成本;而传统IT服务需要较大的初始......