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
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
相关文章推荐
- C语言数组和指针的理解_在取地址运算上的操作_指针加减操作_a 和&a 的区别
- 彻底搞定C语言指针详解
- C语言指针学习七
- 《C语言及程序设计》程序阅读——二维数组与指针
- c语言指针难点
- iOS开发分分钟搞定C语言—— 字符串和指针
- C语言之复杂指针详解
- C语言:指针
- C语言:返回两个数组中第一个元素的指针,并输出这个值
- C语言打印指针(地址)的值
- 011_C语言数组与指针间的转换及函数应用
- C语言:数组 指针 函数
- C语言指针详解
- c语言指针与动态内存分配
- C语言深度剖析笔记(指针和数组)
- 黑马程序员——ios学习笔记 C语言 指针的应用
- 【c语言】strlen与sizeof对数组和指针的求法
- C语言的指针
- [C语言] 数据结构-预备知识指针
- C语言双指针的常见用法