解释下列5个定义的含义,指出其中哪些定义是非法的:(a)int i;(b)const int ic;(c)const int*pic;(d)int*const cpi;(e)const int*const cpic;
解答:(a)合法:定义了int型对象i。(b)非法:定义const对象时必须进行初始化,但ic没有初始化。(c)合法:定义了指向int型const对象的指针pic。(d)非法:因为cpi被定义为指向int型对象的const指针,但该指针没有初始化。(e)非法:因为cpic被定义为指向int型const对象的const指针,但该指针没有初始化。
举一反三
- What do the following declarations mean? a) const int a; b) int const a; c) const int *a; d) int * const a; e) int const * a const;
- 如有定义const int i=5; const int j=3; const int *p=&i; 则执行语句p=&j; 是合法的。
- 定义q为一个指向int类型的变量i的常指针语句( )。 A: int * const q=i; B: int * const q=&i; C: const int *q=i; D: const int *q=&i;
- 已知:const int x = 23;定义指针q指向x,语句是( )。 A: const int *q=&x; B: int * const q=x; C: const int *q=x; D: int * const q=&x;
- 下面几组代码正确的是 A: const int a; B: const int a; a=1; C: const int a=1; D: int const a=1;
内容
- 0
在下列的符号常量定义中,错误的定义语句格式为()。 A: const int M1=10 B: const int M2=20 C: const int M310 D: const char mark=’3’
- 1
下列语句中错误的是( )。 A: const int x; B: const int *p=0; C: const int y=99; D: const int *p=new int(100);
- 2
在下列的符号常量定义中,错误的定义语句格式为()。 A: const int M1=10 B: const int M2=20 C: const int M3 10 D: const char mark=’3&rsquo
- 3
下列表达式,哪一是声明P为指向常量的指针() A: const int *p B: int* const p; C: const int *const p D: int *p
- 4
下列一维数组定义正确的是 。 A: x=6;int num[x]; B: const int x= 6; float a[x]; C: const float x= 6; int b[x]; D: const int x; int c[x];