指针学习心得

前言

初学C语言时候就了解到指针这个东西,感觉指针是C语言的一大特色。并且指针很抽象,难以理解。以下是我学习指针的个人理解

指针是什么?

1.指针是内存中一个最小单元的编号,也就是地址。

2.平时口语说的指针,通常是指针变量,是用来存放内存地址的变量。

总结:指针就是地址,口语中说的指针通常是指针变量。

指针和指针变量的区别?

int a=0;

int* pa=&a;

这里指针表示a的地址,指针变量为pa

关于指针的几个结论

结论1:

指针类型决定了指针在解引用时候访问字节数。

如果是int* 类型在解引用时候访问4个字节数。

如果是char* 类型在解引用时候访问1个字节数。

结论2:

指针的类型决定了指针+ - 1操作时候,跳过几个字节。

决定了指针的步长。

结论3:

指针减指针的绝对值得到的是指针之间的元素个数。

指向同一个空间的2个指针才能相减。否则没有意义。

数组和指针的结合

​//遍历数组的2种方法。
// 方法一:指针形式
#include
void test(int* p,int sz)
{
	int i = 0;
	for (i = 0;i < sz;i++)
	{
		printf("%d", *(p + i));
	}
}
int main()
{
	int arr[10] = { 0 };
	test(arr, 10);
	return 0;
}
//方法二:数组形
#include
void test(int arr[], int sz)//这里的arr[]实际上也表示的是第一个元素的地址
{
	int i = 0;
	for (i = 0;i < sz;i++)
	{
		printf("%d", arr[i]);//arr[i]->*(arr+i)
	}
}
int main()
{
	int arr[10] = { 1 };
	test(arr, 10);
	return 0;
}

​
​

​

 二级指针

二级指针变量是用来存放一级指针变量的地址

总结:

以上只是指针知识的一些基础内容,在以后还要进行指针的深入学习。

 

你可能感兴趣的:(jvm)