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

指针数组和数组指针

时间:2023-12-01 11:57:18浏览次数:29  
标签:p2 10 p1 int 数组 指针

int main()
{
    int* p1[10];
    int(*p2)[10];
    return 0;
}

首先要知道,[ ] 优先级是要高于 * 号。

int* p1[10] ,p1优先和数组结合,那么此时p1就是一个数组,里面存放的内容都是指针类型,所以p1是一个数组,里面存放的内容是指针的地址,叫指针数组。
int(*p2)[10],在这里 *号优先和p2结合,那么p2此时就是一个指针变量,指向的是一个大小为10的整型数组,所以p2是一个指针,指向一个数组,叫数组指针。

那数组指针是怎么使用的呢?
既然数组指针指向的是数组,那数组指针中存放的应该是数组的地址。

int main()
{
    int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
    int* pa = arr;
    int(*p)[10] = &arr;
    int i = 0;
    //一般访问
    for (i = 0; i < 10; i++)
    {
        printf("%d ", *(pa + i));
    }
    printf("\n");
    //数组指针使用
    for (i = 0; i < 10; i++)
    {
        printf("%d ", (*p)[i]);
    }
    return 0;
}

 

标签:p2,10,p1,int,数组,指针
From: https://www.cnblogs.com/keheia/p/17869386.html

相关文章

  • Java Learning Day3 数组
    System.out.print;  System.out.println;每输出一次就会换行Integer.parseInt字符串转intDouble.parseDouble字符串转double数组存储结构连续,存储元素类型相同,随机访问 JVMJVM栈:JVM栈正是java中方法执行时所占有的空间、局部变量会存于栈帧中堆:堆是JVM内存中最大......
  • 数组对比大小 vue3
    lett_data=sortByKey(pz_data.data,"yield_per_mu");//array:当前数组//key:数组中需要比较大小的值exportconstsortByKey=(array:any,key:any)=>{returnarray.sort(function(a:any,b:any){varx=b[key];vary=a[key];returnx&l......
  • 双指针算法总结
    双指针算法分为两类:第一类指向一个序列(更多的情况),第二类指向两个序列。基本的代码框架是:for(i=0,j=0;i<n;i++){while(j<i&&check(i,j))j++;//每道题目的具体逻辑}核心思想:运用单调性等性质,将O(n2)的算法优化到O(n)。种类:快排的划分、归......
  • 【DFS深度优先遍历】给定一个数组,从第一个开始,正好走到数组最后,所使用的最少步骤数
    题目描述给定一个数组,从第一个开始,正好走到数组最后,所使用的最少步骤数。要求:第一步从第一元素开始,第一步小于<len/2(len为数组的长度)。从第二步开始,只能以所在成员的数字走相应的步数,不能多也不能少,如果目标不可达返回-1,输出最少的步骤数,不能往回走。输入759426835......
  • 枚举类的values()方法 枚举类有一个values()方法,这个方法可以将枚举类转换成一个枚举
    枚举类的values()方法枚举类有一个values()方法,这个方法可以将枚举类转换成一个枚举类型的数组,转换成数组之后我们就可以通过下标来访问我们的枚举类中的值枚举类中的元素是无法通过下标值来访问的,如果你想指定访问枚举类中的某个值,你只能直接写出它们的值,除此之外,别无他法。但......
  • 如何理解C语言中“数组名就是指针”
    定义一个数组:inta[5]={1,2,3,4,5};访问元素5可以通过以下形式的代码:a[4];/*下标运算符,可理解为数组的访问形式*/*(a+4);/*指针的加法运算和解引用,可理解为指针的引用形式*/实际上这两种访问形式是等价的,即X[m]=*(X+m)这里不妨再拓展一下,根据加法交换律,交换两个加数的......
  • 实验5—C语言指针应用编程
    1、实验任务1task1_1源代码1#include<stdio.h>2#defineN534voidinput(intx[],intn);5voidoutput(intx[],intn);6voidfind_min_max(intx[],intn,int*pmin,int*pmax);78intmain(){9inta[N];10intmin,max;1112......
  • 指针强制类型转换的本质
    例题:#include<iostream>#include<stdio.h>#definelllonglongusingnamespacestd;intans[100];intmain(){ doubled; cin>>d; llp=*(ll*)&d; intcnt=0;for(;cnt<64;){ans[++cnt]=p&1;p>&g......
  • day1数组理论基础,704. 二分查找,27. 移除元素
    数组理论基础,704.二分查找,27.移除元素1数组理论基础1.1数组概念定义:存放在连续内存空间上的相同类型数据的集合。特点:1.数组中数据类型相同2.数组所占空间连续1.2数组创建2704.二分查找给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数......
  • 指针的注意事项
    1.如果在代码里面这么写char*cp="123";...if(*cp)...if(!*cp)...第一个if指cp这个指针当前指向的地址是否是cp最开始指向的字符串的有效位里面(不包含'\0')第二个if当然就是反过来了2.如果常量指针(const)要赋值给普通指针,必须加上显式类型转换,比如constint*p=&x;int*......