疯子的博客

做一件事,专注一件事
关于void func(const char * str)
void mp_func(const char * str)
{
	str++;//不会改变cs,str不是只读的
	*str='c';//不能给常量赋值
}

void main()
{
	char cs[]="woshiwugude";
	mp_func(cs);//传入的是cs数组名,传给的是字符指针
	cout<<cs;
}

c的恐怖之处或许在于简简单单平平凡凡的一条语句却有说不完的事把

str是个指向字符的指针

cs是个指向字符数组的指针

传值的时候传的是数组,传给了字符指针,它指向数组的第一个元素

在函数调用的时候str只是一个传过来的指向char地址的参数cs的副本

所以你改变str的值并不会改变传过来参数cs的值

加上const使指针指向的数据是只读的了

但是str可不是只读哦

posted on 2010-07-14 19:20  老陈  阅读(1226)  评论(0)    收藏  举报