首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于const限定指针的有关问题

2013-06-26 
关于const限定指针的问题我将const 修饰词放到了外面使程序不能通过指针修改其值,但指针指向的地址应该是

关于const限定指针的问题
我将const 修饰词放到了外面使程序不能通过指针修改其值,但指针指向的地址应该是可以改变的啊?
为什么我编译的时候,会出现警告:different ‘const ’ qualities.

void sort (const struct fly * p[], int n)
{
struct fly * temp;
int i, j;

for (i = 0; i < n - 1; i++)
for (j = i; j < n; j++)
{
if (p[i]->flag == TAKEN && p[j]->flag == TAKEN && 
strcmp (p[i]->lname, p[j]->lname) > 0)
{
temp = p[i];
p[i] = p[j];
p[j] = temp;
}
}
}

[解决办法]
第3行改为: const struct fly * temp;
[解决办法]
p[i] = p[j];
                p[j] = temp;

你这两句尝试修改其值, 肯定会报错的.

因为p是指向常量的指针, 指针本身指向的地址可以变, 但是其指向的值, 只能读, 不能改.

热点排行