数组和指针 笔试题(1)

news2024/12/23 10:55:08

9df55bd9ae9a480e88d51cef59abb437.png

目录

0.复习

1.笔试题1

2.笔试题2

3.笔试题3

4.笔试题4

5.笔试题5


 

0.复习

在做笔试题之前,我们首先复习一下数组名的理解

数组名的所有情况:

1.&数组名,取出的是整个数组的地址

2.sizeof(数组名),这里的数组名表示整个数组,这里的数组名必须单独出现

3.其余所有情况都为首元素地址

其次我们复习一下 sizeof 和 strlen 的知识

sizeof测量字节大小

strlen测量字符串长度,直到 '\0' 停止


1.笔试题1

//笔试题1
int a[] = { 1,2,3,4 };
printf("%zd\n", sizeof(a));
//a表示整个数组,sizeof测量整个数组,打印16
printf("%zd\n", sizeof(a + 0));
//a是数组首元素地址,地址加0,还是首元素地址,是地址就打印4/8
printf("%zd\n", sizeof(*a));
//首元素地址解引用=1,打印4
printf("%zd\n", sizeof(a+1));
//首元素地址加1,跳过1个sizeof(int),但是是地址,是地址就打印4/8
printf("%zd\n", sizeof(a[1]));
//首元素,打印4
printf("%zd\n", sizeof(&a));
//取出整个元素地址,整个元素地址为首元素地址,是地址就打印4/8
printf("%zd\n", sizeof(*&a));
//取出整个元素地址,解引用为整个数组,16
printf("%zd\n", sizeof(&a+1));
//是地址,打印4/8
printf("%zd\n", sizeof(&a[0]));
//取出首元素地址,是地址就打印4/8
printf("%zd\n", sizeof(&a[0] + 1));
//取出首元素+1个sizeof(int)的地址,是地址就打印4/8

sizeof(地址),是地址就打印 4/8


2.笔试题2

//笔试题2
char arr[] = { 'a','b','c','d','e','f' };
printf("%zd\n", sizeof(arr)); 
//传递的是整个数组,打印6
printf("%zd\n", sizeof(arr+0));
//传递首元素地址,加0还是地址,是地址就打印4/8
printf("%zd\n", sizeof(*arr));
//传递的是首元素,首元素地址解引用 = 'a',打印1
printf("%zd\n", sizeof(arr[1]));
//首元素,打印1
printf("%zd\n", sizeof(&arr));
//传递的是整个数组的地址,是地址就打印4/8
printf("%zd\n", sizeof(&arr+1));
//传递的是地址,是地址就打印4/8
printf("%zd\n", sizeof(&arr[0]+1));
//传递的是首元素的地址加1,指向的是第二个元素的地址,是地址就打印4/8

3.笔试题3

知识:strlen接受的参数是字符型地址

字符串都是从哪个地址开始数

//笔试题3
char arr[] = { 'a','b','c','d','e','f' };
printf("%zd\n", strlen(arr)); 
//传递的是首元素的地址,从a开始数,没有'\0'打印随机值
printf("%zd\n", strlen(arr+0));
//传递的是首元素地址,从a开始数,没有'\0'打印随机值
printf("%zd\n", strlen(*arr));
//传递的是字符a,错误传递,strlen接受的参数是地址,报错
printf("%zd\n", strlen(arr[1]));
//传递的是字符a,strlen接受的参数是地址,报错
printf("%zd\n", strlen(&arr));
//传递的是整个元素的地址,也就是从a开始数,没有'\0'打印随机值
printf("%zd\n", strlen(&arr+1));
//传递的是整个元素的地址加1,跳过了整个数组的地址,没有'\0'打印随机值
printf("%zd\n", strlen(&arr[0]+1));
//传递的是首元素地址加1,所以传递的是b的地址,从b开始数,没有'\0'打印随机值

4.笔试题4

//笔试题4
char arr[] = { "abcdef" };
printf("%zd\n", strlen(arr)); 
//传递的是首元素的地址,从首元素地址开始数,打印6
printf("%zd\n", strlen(arr+0));
//从首元素地址开始数打印6
printf("%zd\n", strlen(*arr));
//传递的不是地址,报错
printf("%zd\n", strlen(arr[1]));
//传递的不是地址,报错
printf("%zd\n", strlen(&arr));
//从首元素开始数,打印6
printf("%zd\n", strlen(&arr+1));
//跳过一整个数组,打印随机数
printf("%zd\n", strlen(&arr[0]+1));
//从第二个元素的地址开始数,打印5

5.笔试题5

	//笔试题5
	char arr[] = { "abcdef" };
	printf("%zd\n", sizeof(arr)); 
	//传递的是整个数组,但是字符串带 '\0' ,打印7!!!
	printf("%zd\n", sizeof(arr+0));
	//传递的是首元素地址,是地址就打印4/8
	printf("%zd\n", sizeof(*arr));
	//传递的是首元素,打印1
	printf("%zd\n", sizeof(arr[1]));
	//打印1
	printf("%zd\n", sizeof(&arr));
	//传递的是整个元素的地址,是地址就打印4/8
	printf("%zd\n", sizeof(&arr+1));
	//传递的是跳过整个元素的地址,是地址就打印4/8
	printf("%zd\n", sizeof(&arr[0]+1));
	//传递的是首元素地址加1,就是第二个元素的地址,是地址就打印4/8

048348842c894b78a320466e0b48b67d.png

 

 

 

 

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

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

相关文章

LLM常见问题(Attention 优化部分)

1. 传统 Attention 存在哪些问题? 传统的 Attention 机制忽略了源端或目标端句子中词与词之间的依赖关系。传统的 Attention 机制过度依赖 Encoder-Decoder 架构上。传统的 Attention 机制依赖于Decoder的循环解码器,所以依赖于 RNN,LSTM 等循环结构。传…

【Transformer】Tokenization

文章目录 直观理解分词方式词粒度-Word字粒度-Character子词粒度-Subword(目前最常使用) 词表大小的影响参考资料 直观理解 在理解Transformer或者大模型对输入进行tokenize之前,需要理解什么是token? 理工科的兄弟姐妹们应该都…

027集——goto语句用法——C#学习笔记

goto语句可指定代码的跳行运行: 实例如下: 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Security.Policy; using System.Text; using System.Threading.Tasks;namespace ConsoleApp2 { //…

采用基于企业服务总线(ESB)的面向服务架构(SOA)集成方案实现统一管理维护的银行信息系统

目录 案例 【题目】 【问题 1】(7 分) 【问题 2】(12 分) 【问题 3】(6 分) 【答案】 【问题 1】解析 【问题 2】解析 【问题 3】解析 相关推荐 案例 阅读以下关于 Web 系统设计的叙述,在答题纸上回答问题 1 至问题 3。 【题目】 某银行拟将以分行为主体…

是噱头还是低成本新宠?加州大学用视觉追踪实现跨平台的机器手全掌控?

导读: 在当今科技飞速发展的时代,机器人的应用越来越广泛。从工业生产到医疗保健,从物流运输到家庭服务,机器人正在逐渐改变我们的生活方式。而机器人的有效操作和控制,离不开高效的遥操作系统。今天,我们要…

OHIF Viewer (3.9版本最新版) 适配移动端——最后一篇

根据一些调用资料和尝试,OHIF 的底层用的是Cornerstonejs ,这个是基于web端写的,如果说写在微信小程序里,确实有很多报错, 第一个问题就是 npm下载的依赖, 一、运行环境差异 微信小程序的运行环境与传统的 Node.js 环境有很大不同。小程序在微信客户端中运行,有严格的…

传输大咖38 | 如何应对汽车行业内外网文件交换挑战?

在数字化浪潮的推动下,汽车行业正经历着前所未有的变革。随着智能网联汽车的兴起,内外网文件的安全交换成为了一个亟待解决的问题。本文将探讨汽车行业在内外网文件交换中遇到的难题,并介绍镭速如何为这些问题提供有效的解决方案。 跨网文件传…

js封装上传组件 点击拖拽上传

效果图 上传组件代码 <template><div id"appp"><label for"fileInput" class"upload" dragover"fileDragover" drop"fileDrop" v-if"log ! checkLog"><!-- <div class"jia" …

CTFHub技能树-备份文件下载-.DS_Store

目录 方法一&#xff1a;直接访问/.DS_Store文件 方法二&#xff1a;使用Python-dsstore工具解析.Dsstore文件 方法三&#xff1a;直接使用crul访问/./.DS_Store文件 .DS_Store 是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单…

中西结合治疗帕金森怎么样

中西结合治疗帕金森怎么样 中西结合治疗帕金森病是一种综合运用中医和西医治疗方法的策略&#xff0c;旨在通过各自的优势来改善患者的症状、延缓病情进展&#xff0c;并提高生活质量。西医治疗帕金森病主要依赖药物治疗&#xff0c;如左旋多巴和多巴胺受体激动剂&#xff0c;…

基于web知识库管理系统设计与实现

第二章 系统分析 2.1 知识库管理系统可行性分析 可行性分析对系统的开发至关重要&#xff0c;可以大幅减少不必要的损失&#xff0c;保证系统开发的顺利进行。因此要对系统进行技术可行性、经济可行性两方面的系统可行性分析。 2.1.1技术可行性 随着网络技术日新月异的高速…

换热站可视化:提升热能管理效率

通过图扑 HT 搭建换热站可视化解决方案&#xff0c;实时监控与数据展示&#xff0c;优化热能分配与运行管理&#xff0c;提高能源效率并降低运营成本。

俄罗斯Ozon选品三要素,简单实用的选品方法

在 Ozon 上选品可以参考以下三个要素&#xff1a; 要素一&#xff1a;市场需求 关注热门品类&#xff1a;从 Ozon 的销售数据和市场趋势来看&#xff0c;像电子产品&#xff08;如手机、耳机、智能穿戴设备等&#xff09;、时尚服饰&#xff08;包括流行服装、鞋类、配饰&…

HTTPS访问是什么?

HTTPS&#xff08;Hypertext Transfer Protocol Secure&#xff09;是一种安全的网络传输协议&#xff0c;它基于HTTP&#xff08;Hypertext Transfer Protocol&#xff0c;超文本传输协议&#xff09;进行工作&#xff0c;但增加了安全性的要求。HTTPS通过在客户端&#xff08…

glsl着色器学习(八)通用模板

下面是一个简单的通用WebGL模板 Study.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Doc…

QQ聊天记录删除了怎么恢复?学会这3个方法,简单又有效

QQ作为我们日常沟通的重要工具之一&#xff0c;其聊天记录往往承载着许多珍贵的记忆和重要的信息。但在操作中我们会不小心删除或丢失这些聊天记录&#xff0c;那么QQ聊天记录删除了怎么恢复就成为我们急切需要解决的问题。先别急&#xff0c;本文就为你介绍3种简单又有效的QQ聊…

SpringBoot 大学生体质测试管理系统

摘要 大学生体质测试管理系统提供给用户一个简单方便体质测试管理信息&#xff0c;通过留言区互动更方便。本系统采用了B/S体系的结构&#xff0c;使用了java技术以及MYSQL作为后台数据库进行开发。系统主要分为系统管理员、教师和用户三个部分&#xff0c;系统管理员主要功能…

【STM32+HAL库】---- 驱动DHT11温湿度传感器

硬件开发板&#xff1a;STM32F407VET6 软件平台&#xff1a;cubemaxkeilVScode1 DHT11工作原理 1.1 简介 DHT11温湿度传感器是一种数字式温湿度传感器&#xff0c;其工作原理基于集成了湿度感测元件和NTC温度感测元件的传感器模块。以下是DHT11温湿度传感器的工作原理&#x…

【安全生产】叉车安全带报警器有哪些特点?

叉车安全带报警器是用于防止在叉车发生猛烈碰撞或紧急制动时&#xff0c;司机不与方向盘、挡风玻璃等发生二次碰撞或抛出车外&#xff0c;从而造成的严重伤害的一种叉车安全装置、配件。 很多司机在开叉车时经常有不系安全带的习惯&#xff0c;有很多不负责任的人会认为&#…

智能水培机

目录 一. 选型 1.1 Lichee RV Dock 1.1.1 芯片&#xff1a;D1-H 1.1.2 镜像选择&#xff1a;Tina Linux 二. QT上位机 2.1 选择ID 2.2 主界面刷新数据 2.2.1 设置定时器 2.2.3 定义查询数据库表qtnew的函数checkNew_data 2.2.2 定义槽函数 Refresh_data 2.3 主界面按…