C语言 void 指针与const

  void指针:是一种不确实数据类型的指针变量,它可以

                    通过强制类型转换让该变量指向任何数据的变量

一般形式:void * <指针变量类型>;

对于void指针,在没有强制类型转换之前,不能进行任何指针的算术运算。因为既然 void 是无类型,那么每次算术运算我们就不知道该操作几个字节,例如 char 型操作 sizeof(char) 字节,而 int 则要操作 sizeof(int) 字节。而在 GNU 中则允许,因为在默认情况下,GNU 认为 void * 和 char * 一样

	int a[]={2,4,5,6,7,8};
	void *p;
	p=a;
	int i ,n=0;
	n=sizeof(a)/sizeof(int);
	for(i=0;i<n;i++){
		printf("%d\t%d\n",a[i],*((int*)p+i));
	}
	
	return 0;	

Const修饰指针:

一般形式:const <数据类型> * <指针变量名称>  [<指针运算表达示>]

const修饰什么,什么就不可以变

例如:1、const int *p;(此时*p存储的值不可以变,但是p的地址可以变)

           2、int * const p;(此时p的地址不可以修改,*p可以修改)

           3、const int *const p ;(地址和*p都不可以改变)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值