C语言 DAY09 指针02

1.指针的指针

又名二维指针

语法:数据类型  **p;

示例:        

        void fun()
        {
                int a=10;
                int *p1 = &a;
                int **p2 = &p1;
                printf("p1的地址是:%p\n",p1);
                printf("p2的存储的地址是:%p\n",*p2);
                printf("p2的地址是:%p\n",p2);
        }

2.const与指针

1.指针常量

概念

        不能改变其指向变量的地址, 即地址将保持不变如果一个常量指针指向某个变量, 那么它不能指向其他变量 ,但是可以该指针修改其指向的地址中的数据 ,其本质是一个常量

语法

        数据类型   * const  指针变量名

示例

void fun()

{

int num = 10;

int num1 = 5;

int *  const p = #

// 指针常量不能修改其指向的地址
//p = &num1;

*p = 100;//可以修改值

printf("num=%d\n",*p);

}

2.常量指针

概念      

        指向常量的指针,本质是一个指针,不能通过指针改变其指向的地址中的数据,但是可以改变其存储的地址

语法

        const  数据类型 * 指针变量名  or    数据类型  const  *  指针变量名

示例      

void fun()

{

int num = 10;

int num1 = 5;

const int *  p = #

// 指针常量能修改其指向的地址
p = &num1;

//*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 = &num1;

//*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(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZHANGα

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值