您的位置:首页 > 编程语言 > C语言/C++

c语言:指针错题

2016-09-03 21:45 363 查看
对于:

int a[] = {5, 15, 34, 54, 14, 2, 52, 72};

int *p = &a[5];

则:

p[-2]的值是?

答案:54

对于:

int a[] = {5, 15, 34, 54, 14, 2, 52, 72};

int *p = &a[1];

则:

p[2]的值是?

答案:54

本题目来源于mooc:c语言程序设计,仅供本人个人学习参考使用。

详解:

大笨蛋~~八货!你明明造p指向a【5】,代表p【0】=a【5】,那么p【n】就对应向前向后数就可以了,然而你却想着下标是从0开始的,于是及其愉快的,木有脑子的认为第n个数的下标就是n++1,对!就是n+1,然后验证,两道答案不一样啊,不一样啊。简直,无言以对==

对于以下代码段,正确的说法是:

char *p;

while (1) {

    p = malloc(1);

    *p = 0;

}

A.

最终程序会因为没有没有空间了而退出

B.

最终程序会因为向0地址写入而退出

C.

程序会一直运行下去

D.

程序不能被编译

答案:b

对于以下代码段:

int a[] = {1,2,3,4,5,};

int *p = a;

int *q = &a[5];

printf("%d", q-p);

当sizeof(int)为4时,以下说法正确的是:

A.

因为第三行的错误不能编译

B.

因为第三行的错误运行时崩溃

C.

输出5

D.

输出20

答案: C
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: