C++ では、複数のポインターを宣言する場合は、次のようにします。それぞれの前にint *a, *b, *c;
アスタリスクを付ける必要があります。*
このコードを書くと: typedef int* ptr; ptr a,b,c;
? それらはすべてポインターになりますか、それとも単なる a ですか?
4 に答える
3
うーん、興味深い...見てみましょう。typedef についてあまり知らないとしたら、どうすればよいでしょうか。
答え:自分でテストしています。以下に、質問に答えるコードがあります。
#include <stdio.h>
typedef int* pointer_t;
pointer_t a1, b1, c1;
int* a2, b2, c2;
int main() {
a1 = new int; // ok
b1 = new int; // ok
c1 = new int; // ok
a2 = new int; // ok
b2 = new int; // compile-time error
c2 = new int; // compile-time error
delete a1; // ok
delete b1; // ok
delete c1; // ok
delete a2; // ok
delete b2; // compile-time error
delete c2; // compile-time error
return 0;
}
結論: a1、b1、および c1 の両方がポインターになりますが、a2 のみがポインターになります。
于 2013-09-10T14:59:00.947 に答える