指针习题
来源:互联网 发布:2017年伤感网络歌曲 编辑:程序博客网 时间:2024/06/11 05:52
数组名代表整个数组的情况:
(1).sizeof(数组名)。例如:sizeof(arr)
(2).&数组名。例如:&arr
其他情况,数组名都代表数组首元素
1.下面这段代码会输出什么结果?
#include<stdio.h>#include<stdlib.h>int main(){ int a[5] = { 1, 2, 3, 4, 5 }; int *ptr = (int *)(&a + 1); printf("%d %d\n", *(a + 1), *(ptr - 1)); system("pause"); return 0;}
结果:
&a: 表示取的是整个数组的地址,
&a+1 —指向第二个数组的地址
a:数组首元素
2.填空
#include<stdio.h>#include<stdlib.h>struct Test{ int Num; char*pcName; short sDate; char cha[2]; short sBa[4];}*p;int main(){ p = (struct Test*)0x100000; printf("%p\n", p + 0x1); printf("%p\n", (unsigned long)p + 0x1); printf("%p\n", (unsigned int*)p + 0x1); printf("%p\n", (char *)p + 0x1); system("pause"); return 0;}
假设p得值为0x100000,如下表达式得值为多少?
p+0x1=_?
(unsigned long)p+0x1=__?
(unsigned int*)p+0x1=__?
(char *)p+0x1=_?
结果:
结构体的大小为20,%p——输出地址(16进制)
p+0x1——表示跳过了一个结构体
(unsigned long)p+0x1——把P转换为了int型,即转换为了整数,所以整数加1
(unsigned int*)p+0x1——int型指针加1,跳过四个字节
(char *)p+0x1——char型指针加1,跳过一个字节
阅读全文
0 0
- 指针习题
- 指针的指针习题笔记
- 数组指针习题
- 指针习题一
- 指针习题二
- 指针习题1
- 二重指针习题
- 字符串指针相关习题
- C和指针课后习题
- 关于<<c与指针>>习题
- c语言指针习题分享
- 谭浩强C++程序设计_指针习题11
- 经典C++数组指针学习题
- 谭浩强C++程序设计_指针习题13
- 从一道习题来学习数组指针
- C和指针习题4.14.1
- [C++ 学习] C++ Primer 习题 4.36 指针数组 & 数组指针
- c程序设计 第八章习题 用指针的指针排序和用指针排序
- Eclipse_4.6.3(neon)新建工程的注意事项
- java命名之良好的命名规范
- bash脚本备忘
- java删除指定目录下指定格式文件
- Doctype作用? 严格模式与混杂模式如何区分?它们有何意义?
- 指针习题
- 工作这么久这些软件你都用过吗?第三款说不定你到现在都不知道!
- 字节码:ASCII编码:单字节编码,ANSI编码:多字节编码,UNICODE编码:宽字节编码
- java基础之运算符
- linux常用实战命令(亲测血的教训,持续总结更新)
- Unity3D-gif转Texture2D
- 突然想写点什么~
- 史上最详细的Android Studio系列教程
- HashMap源码分析