数组与指针关系深度解析:代码示例及应用技巧全掌握

通过代码加解析的方式带领大家分析 :数组指针的关系

指针——数组

对于指针,数组,大家到目前为止,大多已经有了详细的了解与认识,并且能够正确的连立起来指针与数组的应用!这一点是非常重要的也是没有办法来取吸取经验的,这就依靠我们多多寻找练习题来刷,毕竟一个好的工程师,没有大量的代码,怎能成就??

对于数组与指针的简单应用场景,笔者仍旧按照代码加解析的方法来涉及!

下面请看笔者的简单代码:通过指针来打印数组元素!(1)

//通过指针来打印数组元素
#include 
int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int* p = arr;
	int i = 0;
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (i = 0; i < sz; i++)
	{
		printf("%d ", *p);
		p++;
	}
	return 0;
}

在上述代码中,定义了一个int类型的指针p,而且p指向数组arr ,而且数组名arr指的是数组首元素的地址! 假设,我们不知道该数组元素的大小,当然对于简短的数组我们可以去手动来查,但是对于几百几千的数组元素我们也是用手动来查数字蛮??这样的做法累不死人来还!这边还没有查出来整个数组元素的大小,而且竞争者已经将整个代码书写好,并且运行出来得出结果了,这样的对手跟猪一样的队友!优恶自见!因此,我们需要知道,并且正确运用的去求数组的大小;但是对于字符串,就用库函数()来进行求字符串长度(专用)!

for (i = 0; i < sz; i++)
	{
		printf("%d ", *p);
		p++;
	}

下面进行对数组元素的打印!通过对   : i = 0; i < sz; i++   每次循环的应用,循环sz次,每一次都执行:("%d ", *p);       p++;    在这里用了“*”(解引用操作符)目的是通过数组首元素的地址arr逐步找到整个数组,并且打印出来!p++  :是指,每次都往后走一步,去找到下一个数表的元素!

最后的打印结果为:

数组与指针的艺术_数组与指针关系_指针数组解析

上述内容仅仅 是通过指针来打印数组的一种简单方法,下面请看笔者的第二种通过指针打印数组的方法!

下面请看笔者的简单代码:通过指针来打印数组元素!(2)


//通过指针来打印数组元素
#include 
int main()
{
	int arr[] = { 10,9,8,7,6,5,4,3,2,1,0 };
	int* p = arr;
	int i = 0;
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (i = 0; i < sz; i++)
	{
		printf("%d ", *(p + i));
		
	}
	return 0;
}

在上述带段代码中,笔者仅仅是更改了部分代码,并且更改了数组元素,害拍再用上次代码运行后的结果,紧急避嫌!

在这段代码里面,其实主要更改的内容还是for循环里面的代码!

for (i = 0; i < sz; i++)
	{
		printf("%d ", *(p + i));
		
	}

每一次的循环都从数组arr(数组的首元素)开始,往后走i步,然后在通过对(p+i)  位置的数组元素来进行“*”解引用,因此可以打印出来该整个数组元素!

最后的打印结果为:

通过上述代码,笔者简单的总结下了下面几个数组与指针的关系!

数组与指针的不同:

1.数组与指针不是一个东西!

2.数组能够存放一组数(一段连续的空间),数组的大小取决于元素个数!

3.指针是一个变量,是用来存放地址的(4或8个字节)

数组与指针的联系:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注