1. 程式人生 > >【C語言】函式引數中的const修飾符

【C語言】函式引數中的const修飾符

  通常,字串操作函式原型中,都會在形參前面加上const修飾符,表示此指標不能用於修改字串的值

  比如:char *strcpy(char *strDest, constchar *strSrc) 

但是可不可以通過 在函式裡定義一個指標指向strSrc,來改掉字串的值呢?

給出以下程式碼:

#include <STDIO.H>
#include<stdlib.h>
void  fuc(const char *p)
{
	char *q = p;
	*q='b';
}
int main()
{
	char p[]="abcd";
	fuc(p);
	puts(p);
	system("pause");
	return 0;
}

vc6.0下:


 

結果顯示可以

換成vs2013:


報出以下錯誤。


但是,使用強制型別轉化後:



結果:



說明,函式引數裡新增const修飾指標,並不說明此函式就不能修改 指標指向的內容,只是說明 函式不能通過被const修飾的指標改變指向的內容。