指针笔试题

news2024/9/26 19:23:50

目录

指针笔试题

NO1.

NO2.

NO3.

NO4.

NO5.✔

NO6.

NO7.

NO8.✔


今天接着继续指针练习。🙂🙂🙂

指针笔试题

NO1.

//指针的类型
//转化后的类型
//解引用访问根据指针类型访问几个字节
//整型在内存中的存储------小端存储
//*解引用向后访问几个字节
int main()
{
  int a[5] = { 1, 2, 3, 4, 5 };
  int *ptr = (int *)(&a + 1);
  printf( "%d,%d", *(a + 1), *(ptr - 1));
  return 0;
}
//程序的结果是什么?

 

NO2.

一定一定要注意变量的类型
//由于还没学习结构体,这里告知结构体的大小是20个字节
struct Test
{
	int Num;
	char* pcName;
	short sDate;
	char cha[2];
	short sBa[4];
}*p;
//假设p 的值为0x100000。 如下表表达式的值分别为多少?
int main()
{
	printf("%p\n", p + 0x1);
	printf("%p\n", (unsigned long)p + 0x1);
	printf("%p\n", (unsigned int*)p + 0x1);
	return 0;
}

 

NO3.

整数在内存的存储方式
解引用访问几个字节----根据指针的类型
注意变量的类型
+1,到底加几个字节
int main()
{
  int a[4] = { 1, 2, 3, 4 };
  int *ptr1 = (int *)(&a + 1);
  int *ptr2 = (int *)((int)a + 1);
  printf( "%x,%x", ptr1[-1], *ptr2);
  return 0;
}

 

NO4.

逗号表达式
二维数组
p[0]=*(p-0)
#include <stdio.h>
int main()
{
  int a[3][2] = { (0, 1), (2, 3), (4, 5) };
  int *p;
  p = a[0];
  printf( "%d", p[0]);
  return 0;
}

 

NO5.✔

&p[4][2]理解
%p就是打印地址,认为内存中存储的-4的补码就是地址
int main()
{
  int a[5][5];
  int(*p)[4];
  p = a;
  printf( "%p,%d\n", &p[4][2] - &a[4][2], &p[4][2] - &a[4][2]);
  return 0;
}

 

NO6.

二维数组的整个数组的地址
第一行的地址
int main()
{
  int aa[2][5] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
  int *ptr1 = (int *)(&aa + 1);
  int *ptr2 = (int *)(*(aa + 1));
  printf( "%d,%d", *(ptr1 - 1), *(ptr2 - 1));
  return 0;
}

 

NO7.

俄罗斯套娃
++
char*
char**
#include <stdio.h>
int main()
{
	char* a[] = { "work","at","alibaba" };
	char** pa = a;
	pa++;
	printf("%s\n", *pa);
	return 0;
}

 

NO8.✔

+1 和 -1往哪个方向看清除
int main()
{
	char* c[] = { "ENTER","NEW","POINT","FIRST" };
	char** cp[] = { c + 3,c + 2,c + 1,c };
	char*** cpp = cp;
	printf("%s\n", **++cpp);
	printf("%s\n", *-- * ++cpp + 3);
	printf("%s\n", *cpp[-2] + 3);
	printf("%s\n", cpp[-1][-1] + 1);
	return 0;
}

 

✔✔✔✔✔最后,感谢大家的阅读,若有错误和不足,欢迎指正!动手写一写.少说话多做事🆗🆗

代码------→【gitee:唐棣棣 (TSQXG) - Gitee.com】

联系------→【邮箱:2784139418@qq.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1018834.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

项目上线部署--》服务器部署流程(二)安装Nginx、Node.js、MySQL

阅读本篇文章前请先阅读项目上线部署--》服务器部署流程&#xff08;一&#xff09; 目录 &#x1f31f;安装Nginx 先登录远程服务器&#xff0c;安装依赖包 下载并解压包 &#x1f31f;安装Node.js 安装nodejs进程管理工具 &#x1f31f;安装MySQL &#x1f31f;写在最…

透过《眼睛的故事》:需求为何成为纪录片的“价值锚点”?

我们正处在一个内容过载、追求流量的时代。 对于观众来说&#xff0c;这是幸运的&#xff0c;也是不幸的。一方面&#xff0c;相比以前能接受到的内容指数级增长&#xff0c;自己的视野无限扩大&#xff0c;但另一方面&#xff0c;“流量思维”下粗制滥制的内容不在少数&#…

一百七十八、ClickHouse——海豚调度执行ClickHouse的.sql文件

一、目的 由于数仓的ADS层是在ClickHouse中&#xff0c;即把Hive中DWS层的结果数据同步到ClickHouse中&#xff0c;因此需要在ClickHouse中建表&#xff0c;于是需要海豚调度执行ClickHouse的.sql文件 二、实施步骤 &#xff08;一&#xff09;第一步&#xff0c;海豚建立Cl…

JavaWeb的基本概念

一、Web基本概念 Web的基本结构&#xff1a; 1.客户端的概述 1.1. 客户端的作用 与用户进行交互&#xff0c;用于接收用户的输入(操作)、展示服务器端的数据以及向服务器传递数据 1.2. 常见的客户端 PC端网页&#xff1a; 移动端&#xff1a; Iot设备&#xff1a; 2…

基于LUT查找表方法的图像gamma校正算法FPGA实现,包括tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 将gamma2.2和gamma1/2.2的数据分别导入到matlab进行对比&#xff1a; 2.算法运行软件版本 matlab2022a 3.部分核心程序 timescale 1ns / 1ps //…

MyBatisPlus中使用Mybatis方式操作数据库。

说明 MyBatisPlus中&#xff0c;可以使用 Mybatis 方式操作数据库。在 Mapper.xml 中&#xff0c;编写 SQL 来实现比较复杂的操作。 一般比较复杂的逻辑&#xff0c;需要多表联合查询&#xff0c;比较适合直接写SQL。 MybatisPlus比较适合单表操作。 PS&#xff1a;本示例只…

使用stelnet进行安全的远程管理

1. telnet有哪些不足&#xff1f; 2.ssh如何保证数据传输安全&#xff1f; 需求&#xff1a;远程telnet管理设备 用户定义需要在AAA模式下&#xff1a; 开启远程登录的服务&#xff1a;定义vty接口 然后从R2登录&#xff1a;是可以登录的 同理R3登录&#xff1a; 在R1也可以查…

10.前端打包与nginx部署

文章目录 打包部署nginx替换html 打包 首先&#xff0c;确保你的项目是可以运行的&#xff0c;以若依为例&#xff0c;运行npm run dev 是可以正常运行起来前端的。然后前端的打包命令是 # 构建测试环境 npm run build:stage # 构建生产环境 npm run build:prod打包好之后&am…

华为云香港S3云服务器性能测评_99元一年租用价格

华为云香港S3云服务器1核2G1M带宽99元一年性能测评&#xff0c;配置为S3云服务器1核2G1M带宽&#xff0c;S系列热卖机型&#xff0c;适用于个人建站、普通web应用等负载较低场景&#xff0c;系统盘为高IO40G系统盘&#xff0c;华为云百科分享华为云香港云服务器配置费用&#x…

HUAWEI华为MateBookD15笔记本2019款i5独显非触屏(BoB-WAH9P)原装出厂Win10系统2004

原厂系统自带显卡、网卡、声卡、指纹等所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、华为电脑管家等预装程序 链接&#xff1a;https://pan.baidu.com/s/1sB7dCXlvw9deSiVeY8BvDg?pwd49a6 提取码&#xff1a;49a6

笔记01:第一行Python

NameError 名字不含特殊符号&#xff08;只能是英文、数字、下划线、中文等&#xff09;名字区分大小写名字先定义后使用 SyntaxError 不符合Python语法书写规范除了语法成分中的保留拼写错误输出中文符号if、for、def等语句末尾忘记冒号 IdentationError 缩进错误&#x…

算法刷题 week4

目录 1.斐波那契数列题目题解(递推 滚动变量) O(n) 剑指offer 10 - II 青蛙跳台阶问题题目题解 10.旋转数组的最小数字题目题解(二分) O(n) 1.斐波那契数列 题目 题解 (递推 滚动变量) O(n) 这题的数据范围很小&#xff0c;我们直接模拟即可。 当数据范围很大时&#xff0…

【学习笔记】Java 一对一培训(2.1)Java基础语法

【学习笔记】Java 一对一培训&#xff08;2.1&#xff09;Java基础语法 关键词&#xff1a;Java、Spring Boot、Idea、数据库、一对一、培训、教学本文主要内容含Java简介、Java基础语法、Java对象和类、Java基本数据类型、Java变量类型、Java修饰符计划2小时完成&#xff0c;…

广义模态控制实例

广义模态控制实例 1. 原系统2. 调节器设计3. 加入调节器后的系统 在广义模态控制一文中&#xff0c;笔者介绍了广义模态控制的思路以及算法。本文将举一个简单的广义模态控制的例子&#xff0c;以加深理解。 1. 原系统 取原开环系统的传递函数为 G ( s ) 2 15 s 2 s G ( {…

2、ARM处理器概论

一、ARM处理器概述 1、ARM的含义 ARM&#xff08;Advanced RISC Machines&#xff09;有三种含义&#xff0c;一个公司的名称、一类处理器的通称、一种技术 ARM公司&#xff1a; 成立于1990年11月&#xff0c;前身为Acorn计算机公司主要设计ARM系列RISC处理器内核授权ARM内…

数据包络分析(DEA)

写在前面&#xff1a; 博主本人大学期间参加数学建模竞赛十多余次&#xff0c;获奖等级均在二等奖以上。为了让更多学生在数学建模这条路上少走弯路&#xff0c;故将数学建模常用数学模型算法汇聚于此专栏&#xff0c;希望能够对要参加数学建模比赛的同学们有所帮助。 目录 1. …

gma 2 教程(二)数据操作:8.矢量数据功能逻辑架构和格式支持

安装 gma&#xff1a;pip install gma 功能逻辑架构 gma矢量数据操作类主要包括数据资源&#xff08;DataSource&#xff09;、矢量图层&#xff08;Layer&#xff09;、矢量要素&#xff08;Feature&#xff09;&#xff0c;三者的示意图如下&#xff1a; 图 29 矢量数据组成…

【JAVA-Day22】深度解析 Java 的包机制

深度解析 Java 的包机制 深度解析 Java 的包机制摘要引言一、什么是包机制1.1 包的定义1.2 包的命名规范1.3 包的声明1.4 包的导入1.5 包的访问权限1.6 包的层次结构1.7 包的目录结构 二、包的命名冲突问题三、总结参考资料 博主 默语带您 Go to New World. ✍ 个人主页—— 默…

ARM架构过程调用标准AAPCS(学习)

AAPCS是ARM架构的处理器规定的一些标准。 参数和返回值传递&#xff0c;对于简单的情况&#xff0c;输入参数由R0-R3分别用来记录第1到4个参数。当传递的参数超过4个时&#xff0c;就需要借助栈来保存参数。函数的返回值通常保存在R0中&#xff0c;若返回值为64位&#xff0c;…

Linux 多线程 ( 多线程概念 )

文章目录 Linux线程概念什么是线程&#xff1f;二级页表线程的优点线程的缺点线程异常 Linux线程概念 什么是线程&#xff1f; 在一个程序里的一个执行路线叫做线程 thread ),更准确的定义为&#xff1a;“线程是一个进程内部的控制序列"。一切进程至少有一个执行线程。…