c语言入门第十七天void指针和const修饰指针

一:void指针

1:void 指针是一种不确定数据类型的指针变量,它可以通过强转类型转换让该变量指向任何
数据类型的变量
2:一般形式为: void *< 指针变量名称 >
3:对于 void 指针,在没有强制转换类型之前,不能进行任何指针的算术运算。
#include<stdio.h>
int main()
{
    int a=10;
    void *p;
    p=&a;
    printf("%d %d \n",a,*(int*)p);
    return 0;
}

4:题目:使用void指针遍历一维数组

#include<stdio.h>
int main()
{
    int a[]={1,2,3,4,5};
    int i,m;
    m=sizeof(a)/sizeof(int);
    void *p;
    p=a;
    for(i=0;i<m;i++)
    {
        printf("%d %d \n",a[i],*((int*)p+i));
    }
    return 0;
}

二:const修饰指针

1:常量化变量的值

例如:const int a =10;

常量化变量是为了使得变量的值不能修改
变量有 const 修饰时,若想用指针间接访问变量,指针也要有 const 修饰。
#include<stdio.h>
int main()
{
    const int a=10;
    a++;
    return 0;
}

注意:会报错,因为常量化变量使a的值不能改变,

2:常量化指针目标表达式
一般说明形式如下
const < 数据类型 > *< 指针变量名称 > [ = < 指针运算表达式 > ]
   
常量化指针目标限制通过指针改变其目标的数值
   
但是指针变量存储的地址可以修改
#include<stdio.h>
int main()
{
    const int a=10,b=5;
    const int *p=&a;
    p=&b;
    return 0;
}
3:常量化指针变量
一般说明形式
< 数据类型 > * const < 指针变量名称 > [ < 指针运算表达式 > ]
   
使得 < 指针变量 > 存储的地址值不能修改。
   
但可以通过 *< 指针变量名称 > 可以修改所指向变量的数值。
#include<stdio.h>
int main()
{
    const int a=10,b=5;
    int* const p = &a;
    (*p)++;
    return 0;
}

注意:必须要在初始化指针的地方指向地址

4:常量化指针变量及其目标表达式
一般说明形式如下:
const < 数据类型 >* const < 指针变量名 > = < 指针运算表达式 >
   
常量化指针目标是限制通过指针改变其目标的数值
< 指针变量 > 存储的地址值不能修改
(结合2,3)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值