06const char *、char const *、char *const三者之间的区别

const int abc = 12;//abc是常量不能改变abc的值
char *p   和  const   混用
    
	char str[] = "q-wertyuiop";
	char* p;
	p = str;
	*p = 'Y';//*p除非在定义中,否则就代表p所指向的内存地址。(*p在=的左边)
	p++;
//Y-wertyuiop,p指向了-wertyuiop1const char *p;
	char str[] = "q-wertyuiop";
	const char* p;//============p所指向的内容不能通过p来修改(p所指向的目标,那个目标中的内容不能通过p来修改)
	p = str;//指向
//	*p = 'Y';//*p除非在定义中,否则就代表p所指向的内存地址。(*p在=的左边)
//--^---就有语法错误了
	p++;//p往下指是可以变化的,地址可以变化
	//但是它可以通过str[]来修改
	str[0] = 'Y';//这是OK的2char const *p;
	//char const *p 等价于 const char *p; ===========3char * const p;
	char str[] = "q-wertyuiop";
	char* const p = str;//定义的时候必须初始化
	//--------^--->     p一旦指向了一个东西之后,就不可以再指向其他东西了。
	//强调:指向了这个内存,就不可以指向这个内存的下一个内存。
	//p++;//这就不可以了。。。===^^^^=====================================================
	//但是可以指向这个内存的内容可以修改,内容可以修改。4const char * const p = str;
	//same: char const *const p = str;
//p的指向的内存不能改变,而且,内存中的内容也不能通过p来改变

posted @   豪崽_ZH  阅读(272)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示