题目:
#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数组与指针.doc (填空 选择 解答)
C++全套联系题 数组 指针 函数 类 派生 多态与虚函数练习
C++-函数、数组及指针-习题指导.wps
包含内容为:typedef struct与struct的区别、typedef和define的区别、malloc与new的区别、函数指针和指针函数、指针数组和数组指针、写一个函数,完成内存之间的拷贝、判断循环队列空满、二元树的遍历算法、无向图...
整理的一些关于C语言的练习题,题目答案都有,需要的可以下载看一下
题库练习,内含解析
C++题目:利用模板练习顺序循环队列 57%(21/37) 43% 2019-12-16 1073 选择结构习题:输入0~6的数字,输出对应星期的英文。 57%(783/1371) 44% 2020-4-23 1075 选择结构习题:实现简单数值运算 34%(711/2109) 69% ...
在计算机科学发展过程中,早期数据结构教材大都采用PASCAL语言为描述工具,后来出现了采用C语言为描述工具的教材版本、至今又出现了采用C++语言为描述工具的多种教材版本。本教实验指导书是为已经学习过C++语言的...
C语言的基本练习和C++引用,包括一般变量的内涵、指针变量的内涵、一维整型数组、二维整型数组、字符数组和字符串、练习局部变量的引用、简单的形参的引用方式、引用方式在函数中创建一个动态数组、标准C方式在函数...
还在为看不懂繁琐的C++指针而烦恼吗?这里有包含了指针变量、指针数组、多级指针、指针变换等经典问题的讲解,谁看谁知道!
- 第六节 指针与数组 - 第七节 函数指针 - 第八节 引用 - 第九节 Typedef - 第十节 程序举例 - 本章小结 - 课后习题 ◇ 第八章 结构与链表 - 课前索引 - 第一节 结构及使用 - 第二节 结构变量作为函数...
c/C++课程习题PPT格式含答案。多次整理,适合C/C++初学者练习用。分为基础、表达式、数组、指针几个部分
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 结构体类型变量的定义和引用 ...
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++中,用数组、指针、和( 引用 )作为函数参数,能够将参数值带回。 2.为了降低函数调用的时间开销,建议将小的调用频繁的函数定义为(内联函数 ),方法是在函数类型前加上(inline)关键字。 3.面向对象的程序...
不错的C++ 数据结构和算法教程 1. 概述 2. C++基础 3. 输入/输出 4. 控制结构 I (选择) 5. 控制结构 II (循环) 6. 用户自定义函数I 7. 用户自定义函数II 8. 用户自定义简单数据类型、名字空间和string类型 9. ...
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++的基础知识、C++程序的组成及其开发过程、C++程序中的数据、表达式和语句、控制程序流程、数组与字符串、指针与引用、使用函数、函数模板、错误和异常处理、宏和预编译、面向对象的开发、...
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 ...
2、C++逻辑算法练习题 3、C++函数、指针 4、C++内存管理等高级知识 无论您是在校大学生,还是职业学员,或者其他开发人员,本书都志在全面提高您的C++编程思想和开发实力,使您能够系统的学习C++,写出高质量的...