一、定义
1.指针是一种特殊的变量,它的值是另一个变量的内存地址。用指针变量保存另一个变量的地址,因此可以间接访问这个变量。
2.指针是一个变量,它的指向的另一个变量的地址被称为指针变量,指针变量的值表示另一个变量的地址。
3.指针是一种特殊的变量,它保存另一个变量的地址,但它的值不代表另一个变量的值。
4.指针也可以称为一个指示变量,用它来指向另一个变量的位置。
二、概念
1.指针变量:它实际上是另一个变量的地址,可用它来访问、修改或改变另一个变量的值。
2.指针数组:指向一个数组的指针,用它可以访问、修改或改变数组元素的值。
3.指向指针的指针:指向一个指针变量的指针,用它可以访问、修改或改变指针变量的值。
4.函数指针:一个指向函数的指针,它可以让程序直接调用函数,提高程序效率。
5.指针运算:指针的运算可以用来对指针变量进行算术运算和逻辑比较,从而实现指针的控制和移动。
6.指针内存分配:使用指针来分配和释放内存,可以更有效地使用内存空间,提升程序性能。
7.指针应用:指针广泛应用于程序设计中,提供快速、有效、灵活和稳定的方法来使用内存和管理数据结构,使得程序设计更加简单高效。
1.\t概念上的区别:指针数组是一种由指针组成的数组,每一个指针都指向一个字符串或者其他变量;数组指针是一种指向数组的指针类型,一个数组指针变量可以存放数组的首地址。
2.\t定义方式的不同:指针数组的定义语法由两部分组成:数组的元素的类型以及每个元素的数目,即:type name[size];而对于数组指针变量,其定义方式只包含指针变量的类型,即:type *name。
3.\t使用场景不同:指针数组一般用来存放指针类型的变量,例如,字符指针、结构指针、函数指针等;而数组指针则一般用作形式参数,当作函数参数时,传入指针参数可以把数组指针当作函数参数传入,从而可以在函数中改变数组的变量。
4.\t操作性不同:指针数组的每一个元素都是指针,因此,不能使用下标操作符([ ])、内置的算术运算符(+、-等)以及一些其他的一些操作符(++、--等),必须利用指针的特性来操作元素;对于数组指针变量,可使用下标操作符和算术运算符来操作元素。
5.\t传值方式不同:指针数组传值时,只需要传入一个指针变量指向指针数组即可:type *name; 而数组指针则需要传入两个参数,一个指针变量和一个元素个数:type* name, int size;
6.\t存储位置不同:指针数组存储在栈上,而数组指针只是存储指向数组的首地址,是一个单独的变量,存储位置取决于变量的类型,可存储在栈上、堆上或者全局存储区,根据定义的位置而定。