質問する
236 次
2 に答える
1
許可されている場合、宣言されたものを誤って変更する可能性があるためですconst
。
ルールで許可されている場合の具体的な乱用の例を次に示します。
char const* s = "a literal, very const";
bar(const char** pp )
{
*pp = s;
}
foo(char** arr)
{
bar(arr);
char* unconsted_s = *arr;
unconsted_s[0] = 'X';
}
これはFAQでもあります。質問する前によくある質問 (または単にグーグル) を確認することをお勧めします。
于 2013-03-29T13:19:00.023 に答える
0
許可されている場合、同様のシナリオにつながる可能性があります。
void foo(int** arr)
{
/*Can freely modify value at location pointed by a*/
**arr = 6;
}
int main()
{
/*Pointer to constant*/
int i = 5;
const int* a =&a;
/*Not a pointer to constant*/
int** aa= &a;
foo(aa);
return 0;
}
于 2013-03-29T13:26:40.267 に答える