1.指针的指针
又名二维指针
语法:数据类型 **p;
示例:
2.const与指针
1.指针常量
概念
语法
数据类型 * const 指针变量名
示例
void fun()
{
int num = 10;
int num1 = 5;
int * const p = #
*p = 100;//可以修改值
printf("num=%d\n",*p);
}
2.常量指针
概念
指向常量的指针,本质是一个指针,不能通过指针改变其指向的地址中的数据,但是可以改变其存储的地址
语法
const 数据类型 * 指针变量名 or 数据类型 const * 指针变量名
示例
void fun()
{
int num = 10;
int num1 = 5;
const int * p = #
//*p = 100;//不可以修改值
printf("num=%d\n",*p);
}
3.常量指针常量
概念
指向的地址与指向的地址中的数据都不能被修改
语法
const 数据类型 * const 指针变量名
数据类型 const * const 指针变量名
示例
void fun()
{
int num = 10;
int num1 = 5;
const int * const p = #
//*p = 100;//不可以修改值
printf("num=%d\n",*p);
}
4.注意
以上名称在网上有所不同,以上为主流说法
3.指针与数组元素
概述
数组,是多个相同类型的变量的集合, 每个变量都占内存空间,都有地址编号 ,指针变量当然可以存放数组元素的地址
注意
只有两个相同类型的指针指向同一个数组的元素的时候,比较大小才有意义 ,指向前面元素的指针小于指向后面元素的指针
示例
void fun04()
{
int nums[] = {1,3,5,7,9,2,4,6,8,0};
int *p = &nums[3];
printf("%d\n",*p);
//因为数组在内存中是连续开辟的
//所以我们可以通过对指针的加减使其指向数组中不同位置的元素
printf("%d\n",*(p+1));
printf("%d\n",*(p+2));
printf(