2

I know that int* foo(int) prototype means that foo is a function that takes an integer argument and returns a pointer to an integer.But what does the following mean?

  const int* foo(int);

I tried to reason but failed.My book doesn't say anything about this but I see stuff like this in library function prototypes.So please tell me what it means.

4

3 に答える 3

1

そのため、返されたアドレスが指す値は、アドレスを介して変更することはできません (foo() が const のアドレスを返す場合に役立ちます)。

const int* p2c =  foo(int);
*p2c=10;  <-- "error"
于 2013-05-14T13:52:58.773 に答える
1

cdeclから:

これの意味は

const int へのポインターを返す関数 (int) として foo を宣言します。

于 2013-05-14T13:53:32.383 に答える
1
const int* foo(int);

foo は、整数の引数を取り、const 整数へのポインターを返す関数です。つまり、ポインターを変更することはできますが、値を変更することはできません。

于 2013-05-14T13:53:46.050 に答える