`
fdyang
  • 浏览: 79871 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

C/C++习题 - 数组 , 指针,取址

阅读更多

题目:
#include <stdio.h>
void main(){
 int a[5]={1,2,3,4,5};
 int *ptr=(int *)(&a+1);
 printf("%d,%d",*(a+1),*(ptr-1));
 return;
}

 

解答:
首先要理解几个概念:
a        :  一维数组名,可以标示数组的首地址.  [ 可以理解为指针常量,不是指针变量 ]
&a[0]  :  第一元素的首地址。
&a      :  对一位数组取址, 系统会认为吧这个数组整体当一个元素而得到的指针,指针的的首地址没有变。
            但是当做 +1 地址运算的时候,是直接一这个数组为元素向后移动指针的。
            所以 (&a+1)操作的话,实际相当于 &a[0] + 5 == &a[5] .

所以,题目中 *(a+1) 等于 a[1] ,即2 。  *(ptr) 等于 *(a+5), *(ptr-1) 等于 *(a+4) ,即a[4], 值为5.

 

补充观察:
#include <stdio.h>
void main(){
 int a[5]={1,2,3,4,5};
 printf("%d,",a);
 printf("%d,",a+1);
 printf("%d,",&a);
 printf("%d,",&a+1);
 return;
}
输出: 1245024,1245028, 1245024,1245044.
因为在Win32系统里面,sizeof(int)=4 , 占4个字节 . 5个元素占20个字节。

 

 

分享到:
评论

相关推荐

    C++习题 6数组与指针

    C++习题 6数组与指针.doc (填空 选择 解答)

    C++全套联系题 数组 指针 函数 类 派生

    C++全套联系题 数组 指针 函数 类 派生 多态与虚函数练习

    C++-函数、数组及指针-习题指导.wps

    C++-函数、数组及指针-习题指导.wps

    C++/数据结构 笔试面试+个人笔记资料(含答案和解释)

    包含内容为:typedef struct与struct的区别、typedef和define的区别、malloc与new的区别、函数指针和指针函数、指针数组和数组指针、写一个函数,完成内存之间的拷贝、判断循环队列空满、二元树的遍历算法、无向图...

    C语言题库数组,指针,结构体,链表习题

    整理的一些关于C语言的练习题,题目答案都有,需要的可以下载看一下

    C++学习通数组与指针

    题库练习,内含解析

    c语言题库问题和答案.docx

    C++题目:利用模板练习顺序循环队列 57%(21/37) 43% 2019-12-16 1073 选择结构习题:输入0~6的数字,输出对应星期的英文。 57%(783/1371) 44% 2020-4-23 1075 选择结构习题:实现简单数值运算 34%(711/2109) 69% ...

    数据结构(C++)有关练习题

    在计算机科学发展过程中,早期数据结构教材大都采用PASCAL语言为描述工具,后来出现了采用C语言为描述工具的教材版本、至今又出现了采用C++语言为描述工具的多种教材版本。本教实验指导书是为已经学习过C++语言的...

    ch0+变量指针和引用9个练习题.ppt

    C语言的基本练习和C++引用,包括一般变量的内涵、指针变量的内涵、一维整型数组、二维整型数组、字符数组和字符串、练习局部变量的引用、简单的形参的引用方式、引用方式在函数中创建一个动态数组、标准C方式在函数...

    C++多级指针

    还在为看不懂繁琐的C++指针而烦恼吗?这里有包含了指针变量、指针数组、多级指针、指针变换等经典问题的讲解,谁看谁知道!

    清华大学计算机课程之《C++程序设计》

    - 第六节 指针与数组 - 第七节 函数指针 - 第八节 引用 - 第九节 Typedef - 第十节 程序举例 - 本章小结 - 课后习题 ◇ 第八章 结构与链表 - 课前索引 - 第一节 结构及使用 - 第二节 结构变量作为函数...

    c课程习题PPT格式含答案

    c/C++课程习题PPT格式含答案。多次整理,适合C/C++初学者练习用。分为基础、表达式、数组、指针几个部分

    《C语言程序设计》-PDF格式

    6.4.3 数组指针作函数的参数 102 6.4.4 指针与字符数组 108 6.5 指针的地址分配 111 6.6 指针数组 112 6.7 指向指针的指针 118 6.8 main函数的参数 121 第7章 结构体与共用体 125 7.1 结构体类型变量的定义和引用 ...

    【全新正版】现代C++程序设计(原书第2版)

    6.3.2 数组指针 6.3.3 向函数传递数组:最开始的引用调用 6.3.4 利用数组和函数生成随机数并进行排序 6.4 C字符串,也称为字符数组 6.4.1 字符数组的初始化 6.4.2 null字符 6.4.3 C字符串的输入 6.4.4 C++中提供的...

    c++面向对象复习题答案版.doc

    在C++中,用数组、指针、和( 引用 )作为函数参数,能够将参数值带回。 2.为了降低函数调用的时间开销,建议将小的调用频繁的函数定义为(内联函数 ),方法是在函数类型前加上(inline)关键字。 3.面向对象的程序...

    C++编程-数据结构与程序设计方法[美.D.S.Malik][中译本]

    不错的C++ 数据结构和算法教程 1. 概述 2. C++基础 3. 输入/输出 4. 控制结构 I (选择) 5. 控制结构 II (循环) 6. 用户自定义函数I 7. 用户自定义函数II 8. 用户自定义简单数据类型、名字空间和string类型 9. ...

    现代C++程序设计

    6.3.2 数组指针 6.3.3 向函数传递数组:最开始的引用调用 6.3.4 利用数组和函数生成随机数并进行排序 6.4 C字符串,也称为字符数组 6.4.1 字符数组的初始化 6.4.2 null字符 6.4.3 C字符串的输入 6.4.4 C++中提供的...

    《由浅入深学C++-基础、进阶与必做300题》pdf格式 (完整版 带目录

    本书循序渐进地讲述了C++的基础知识、C++程序的组成及其开发过程、C++程序中的数据、表达式和语句、控制程序流程、数组与字符串、指针与引用、使用函数、函数模板、错误和异常处理、宏和预编译、面向对象的开发、...

    Visual C++ 2005入门经典--源代码及课后练习答案

    2.11 练习题 100 第3章 判断和循环 101 3.1 比较数据值 101 3.1.1 if语句 102 3.1.2 嵌套的if语句 103 3.1.3 扩展的if语句 105 3.1.4 嵌套的if-else语句 107 3.1.5 逻辑运算符和表达式 109 3.1.6 ...

    C++自学 apk

    2、C++逻辑算法练习题 3、C++函数、指针 4、C++内存管理等高级知识 无论您是在校大学生,还是职业学员,或者其他开发人员,本书都志在全面提高您的C++编程思想和开发实力,使您能够系统的学习C++,写出高质量的...

Global site tag (gtag.js) - Google Analytics