const与指针:char * const p;char const * p;const char *p;

{char * const p;char const * p;const char *p;
上述分别是什么?上述三个有什么区别?

问题一:什么是const?

const 英文解释是:常量,常数,固定。在C语言中的作用:常量化xx,将xx作常量

问题二:p,*p,&p,&(*p)分别是什么?代码解释:)

#include <stdio.h>
int main()
{
	char ch = 'a';			        //开辟一片 char型  的空间,给它取名为 ch ;保存 字符a     在这一片空间
	char *p = &ch;			        //开辟一片 char*型 的空间,给它取名为 p  ;保存 ch的地址  在这一片空间

	printf("ch   = %c\n",ch); 		//所谓的 ch ,其实是说: 名字为ch的空间里面保存的值
	printf("&ch  = %p\n",&ch);		//所谓的 &ch,其实是说: ch的地址

	printf("p    = %p\n",p);		//所谓的 p  ,其实是说: p空间里面保存的值,也就是 ch的地址
	printf("&p   = %p\n",&p);		//以此类推
	
	printf("*p   = %c\n",*p);
	printf("&(*p)= %p\n",&(*p));	
	
	return 0;
}


/*result
ch   = a
&ch  = 0xbf90448f
p    = 0xbf90448f
&p   = 0xbf904488
*p   = a
&(*p)= 0xbf90448f
*/

{char * const p;

思路:    const 修饰 p, p 是指针变量, 即指针变量p被常量化/只读化

内涵:    指针变量p 保存的地址                                       是不可变的
               指针变量p 保存了地址, 这个地址保存的值     是可变的
        
延伸:    指针变量p 保存了地址, 这个地址保存的值     可以 *p = 'b';  可以 ch =  'b'; 
}
    
{char const * p;

思路:    const 修饰 *p, *p 是指针变量指向的值, 即指针变量指向的值被常量化/只读化

内涵:    指针变量p 保存了地址, 这个地址保存的值     是不可变的
               指针变量p 保存的地址                                      是可变的

延伸:    指针变量p 保存了地址, 这个地址保存的值    不可以 *p = 'b'; 可以ch =  'b'; 
}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值