本文主要是介绍一维数组指针[num和num的区别],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一维数组指针[num和&num的区别]
#include<stdio.h>
#include<stdlib.h>void main()
{int num[10] = { 1,2,3,4,5,6,7,8,9,0 };int *p = num;int(*pa)[10] = num;printf("%x\n%x", &num, num);printf("%d\n%d", sizeof(*num), sizeof(*(&num)));printf("\n%d\n%d", sizeof(*p), sizeof(*pa));system("pause");
}
num 跟 &num都表示数组的首地址。但解析的长度不一样
num 等价于 int *p (指向元素的指针) //4
&num 等价于 int(*pa)[10] (指向数组的指针) //4*10=40
关于 int(*pa)[3] 的理解
若有定义int(*p)[3];则定义了一个名为p的指针变量,表示p是一个指针变量,它可以指向每行有三个整数(即int型)元素的二维数组.p是指向一维数组的指针变量。这句话的理解是首先(*p)[3]是一个指向一维数组的指针变量,意思就是p这个指针是指向一个含有3个元素的数组的,那么p指针每一次加1就相当于把p中存的地址加6(前提是int类型占2个字节,在VC中是占4个字节)。
这篇关于一维数组指针[num和num的区别]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!