作者bonoshi (sbo)
看板EE_DSnP
标题Re: [问题]有关void f(int const*q)
时间Mon Nov 10 23:52:41 2008
以下的测试我觉得有点偏了
会做测试的原因应该是对我先前的问题蛮好奇的才会做这些实验
贴给大家参考
可直接copy到compiler上
我有都注解
如果有误请高手指正
谢谢~
测试一
#include<iostream>
using namespace std;
void f(int const**q);//q is a pointer to a pointer to const int
int main(void){
/*const*/ int a = 20;//有没有const都没关系
int const* p = &a;
f(&p);
system("pause");
}
void f(int const** q){
*q = 0;//可改*q的值但不可改**q
}
//有没有const都没关系,
//我的解读是只要int const * p = &a保证*p不能被修改就足够了,
//系统就会承认q是一个pointer to a pointer to a const int,
//与a宣告时有没有const无关。
测试二
#include<iostream>
using namespace std;
void f(int *const *q);
int main(void){
int a = 20;
int* p = &a;
f(&p);
cout << a << endl;
system("pause");
}
void f(int *const *q){
**q = 0;//虽然q是一个pointer to constant pointer to int,*q不能被修改
,但**q可以
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.240.71
1F:推 lunworld:1. q is a pointer, pointng to a "const pointer" 11/11 10:35
2F:推 lunworld: 所以只要p 是coinst pointer就可以了 11/11 10:36