常量指针与指针常量:
常量指针:指向常量的指针:例如:const int* pt, int const* pt(const在*号的左边)
指针常量:指针本身是个常量,例如:int* const pt;即指针本身的内容不可以更改
int intarray[10]
赋值:
pt =intarray;
intarray =pt;是错的
不过还是有几点疑问
#include "iostream"
using namespace std;
const int MAX = 10;
int f(const char* ch)
{
char temp[MAX];
memset(temp,0,MAX);
for(int i=0;i<MAX -1;i++)
{
temp[i] =i + 'a';
}
strcpy((char*)ch,temp);
return 0;
}
int main()
{
char ch[MAX] ="1234";
//char *const pch = ch;//语句1 pch[0]=ch2不通过
const char *pch = ch;//语句2 pch[0]='a'不通过
cout<<pch<<endl;
f(pch);
cout<<pch<<endl;
return 0;
}
疑惑:
语句1与语句2在上述调用均可成功,另外f函数的输入参数ch的值不是被改变了么
以上函数在vc++ 6.0编译运行