参数const XX× pXX与参数const XX& xx的注意点

参数const XX* pXX与参数const XX& xx的注意点

编者:李国帅

qq:9611153 微信lgs9611153

时间:20

背景:

VC中指针和引用是容易出错的地方,说起来简单,用起来需要小心;灵活运用可以避免错误。

const XX*只能保证指针pXX不被改变,不能保证里面的数据不被改变

const XX& xx参数可以保证对象xx内部数据不能改变

 

总结:

typedef struct xx
{
	int a;
	unsigned char * b;
}XX;

int func(const XX* pXX)//const XX*只能保证指针pXX不被改变,不能保证里面的数据不被改变
{
	strcpy((char*)pXX->b,"54321");//成员的优先级高于前置括号,一定要小心。

	pXX = NULL;//仅仅是副本指针变化,原件没有变化
	return 0;
}
int funcObject(const XX& xx)
{
	//strcpy(xx.b,"54321");//错误不能改变整个对象
	//xx.a = 0;
	return 0;
}
int main(int argc, char* argv[])
{
	xx stcc;
	stcc.b = new unsigned char[10];
	strcpy((char*)stcc.b,"12345");
	//const char* p = (char*)stcc.b;
	//cout<<p<<endl;
	func(&stcc);
	delete stcc.b;//"54321"

	system( "PAUSE" );
	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章