*p,(*p)[10],*p=new int[10],

Posted tangjunjun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了*p,(*p)[10],*p=new int[10],相关的知识,希望对你有一定的参考价值。




int **p;   //一个指向指针的的指针,它指向的指针是指向一个整型数;

int *e[10]    // 有10个指针,*e[0],*e[1]等;

int (*f)[10];  //一个指向有 10 个整型数数组的指针,指针是一个;

int *g(int);  //一个指向函数的指针,该函数有一个整型参数并返回一个整型数;
int (*h[10])(int);  // 一个有 10 个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数;

 

顺带解释下动态内存的指针:

int (*a)[10];——声明a是个指向具有10个int型元素的一维数组的指针。

int *a=new int[10];——等号左边是声明一个int *型指针a,等号右边是动态申请10个int型数据的连续空间;=号是将成功申请的空间的第一个元素的地址赋给int *型指针a。

技术图片

 

 ps:经过验证如:
int *p,a[3]={2,3,6};

p=a;

p[2]=6;   //p[2]为int,可把p当作数组使用

 技术图片

 

以上是关于*p,(*p)[10],*p=new int[10],的主要内容,如果未能解决你的问题,请参考以下文章

075.程序的内存模型-new运算符

(研) int(*p)[10]; int *p[10]; int(*)[10]; 之间的区别

在C++中怎么通过New申请多个连续的存储空间?

外传篇3 动态内存申请的结果

cpp小知识点 —— new 和 delete的误区

C++ new和delete运算符简介