PTA之指针错误
作者:互联网
1.
以下正确的说明语句是(D )。
A.int *b[ ] = {1, 3, 5, 7, 9};
B.
int a[ ] = {1, 3, 5, 7, 9};
int *num[5] = {a[0], a[1], a[2], a[3], a[4]};
C.
int a[3][4], (*num)[4];
num[1] = &a[1][3];
D.
int a[5], *num[5] = {&a[0], &a[1], &a[2], &a[3], &a[4]};
A.指针数组,不能赋值整型数
B.指针数组num[],a[0]为int
C.
2.
对于以下变量定义,正确的赋值是(C)。
int *p[3], a[3];
A.p = a
B.*p = a[0]
C.p[0] = &a[0]
D.p = &a[0]
A.数组名p就是一个二级指针,即p[0]的地址。a=&a[0]
B.*p=p[0],y=一级指针
D.&a[0]一级指针
3.
下面程序的运行结果是(2,4)。
#include<stdio.h>
int main(void)
{
int x[5] = { 2, 4, 6, 8, 10 }, *p, **pp;
p = x;
pp = &p;
printf("%d ", *(p++)); /* 数字后有一个空格 */
printf("%d\n", **pp);
return 0;
}
*(p++),用p++ 表达式计算
4.
设有以下程序段,若 k 为 int 型变量且 0≤k<4,则对字符串的不正确引用是(D )。
char str[4][10] = {"first", "secone", "third", "fourh"}, *strp[4];
int i;
for(i = 0; i < 4; i++){
strp[i] = str[i];
}
A.strp[k]
B.*strp
C.str[k]
D.strp
B.*strp=*(&strp[0])
D.strp=&strp[0],二级指针
标签:pp,错误,int,strp,PTA,++,num,指针 来源: https://blog.csdn.net/qq_58309598/article/details/120584243