博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组和指针、数组指针和指针数组、函数指针和指针函数、数组标识符的意义、静态和动态创建的数组的本质区别、标识符类型判断方法
阅读量:2790 次
发布时间:2019-05-13

本文共 1809 字,大约阅读时间需要 6 分钟。

#include 
using namespace std;void tArray1(int *p){ for (int i = 0; i < 3; i++) { *(p+i) = *(p+i)+1; cout << *(p+i) << endl; }}void tArray2(int a[]){ for (int i = 0; i < 3; i++) { a[i] = a[i] + 1; cout << a[i] << endl; }}void tFunc1(void (*f)()){ (*f)();}void func1(){ cout << "hello world" << endl;}float *find(float (*ptr)[4],int n){ float *pt; pt = *(ptr + n); return (pt);}void main(){ /**************** 指针和数组的关系***********************/ //对指针可以直接进行下标检索操作,这时把指针当前空间作为数组首元素进行操作,自己进行越界检查 //这个时候解引用运算符和下标运算符检索效果是相同的 /*int a[3] = {1,2,3}; cout << a <
> m; float *p = find(score,m); for (int i = 0; i < 4;i++) { cout<< (*(p+i)) << endl; }*/ /***************动态和静态创建的高维数组及数组标识符的含义及类型*******************************/ /* //小结:其实n维数组(静态创建的数组),它的标识符其实就是最高维(从整体看来第n-1维数组)的首地址 //例如:tri三维数组而言,{
{1,2},{3,4}}和{
{5,6},{7,8}}是第n-1维数组,它们共同构成了一个三维数组, //其实tri就是这两个二位数组的首地址构成的数组的首地址 //静态创建的数组本质上还是一块连续存储的区域 int tri[2][2][2] = {
{
{1,2},{3,4}},{
{5,6},{7,8}}}; //int (**pt)[2] = tri;//编译会报错,因为tri本质上是一个一维数组的首地址,元素是二位数组的首地址 int (*pt)[2][2] = tri; cout << tri << endl; cout << tri[0] << endl; cout << pt << endl; cout << tri + 1 << endl; cout << tri[1] << endl; cout << pt + 1 << endl; //而动态创建的多维数组跟静态创建的数组从结构而言就不是一个概念 //动态创建的数组各维之间的关系通过上一维中存储的地址来联系,所以不能使用++来就按下一维的地址 int m,n,p; int i = 1; int ***pTri; pTri = new int **[2]; for (m = 0; m<2; m++) { pTri[m] = new int *[2]; } for (m = 0; m < 2; m ++) { for (n = 0; n < 2; n++) { pTri[m][n] = new int[2]; } } for (m = 0; m< 2; m++) { for (n = 0; n<2; n++) { for (p=0; p<2; p++) { pTri[m][n][p] = i; i++; } } } for (m = 0; m< 2; m++) { for (n = 0; n<2; n++) { for (p=0; p<2; p++) { cout << pTri[m][n][p] << endl; } } } cout << pTri << endl; cout << pTri[0] << endl; cout << pTri + 1 << endl; cout << pTri[1] << endl;*/}

转载地址:http://yonmd.baihongyu.com/

你可能感兴趣的文章
Java一次编译到处运行原理
查看>>
亿级流量电商系统JVM参数设置优化
查看>>
Integer.highestOneBit(int i)方法的作用与底层实现
查看>>
类加载深入解析与阶段分解
查看>>
类的加载连接与初始化过程详解
查看>>
常量的本质含义与反编译及助记符详解
查看>>
编译器常量与运行期常量的区别与数组创建本质分析
查看>>
接口初始化规则与类加载器准备阶段和初始化阶段的重要意义
查看>>
类加载器深入解析及重要特性剖析
查看>>
初始化对于类和接口的异同点深入解析
查看>>
类加载器双亲委托机制详解
查看>>
红黑树
查看>>
类加载器与类初始化深度剖析
查看>>
不同的类加载器作用与加载动作分析
查看>>
面向对象有哪些特征
查看>>
Java深拷贝VS浅拷贝
查看>>
重载和重写的区别
查看>>
面向对象和面向过程的区别
查看>>
字符型常量和字符串常量的区别
查看>>
int和Integer之理解自动拆箱与装箱
查看>>