C语言面试题目指针详解

【C语言指针详解】指针必备的8道面试题! 【C语言指针详解】指针必备的8道面试题 阅读详情

C语言的指针是个神奇的存在,让你充分感受到算法之美。c语言是靠数据结构、算法的分析和设计过程中的一门基础课,所以从问题出发能更加深入了解指针。

在 C 语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符;
strlen()是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值(长度不包含’\0’)

观察输出结果:

	char arr[] = "abcdef";
	
	printf("%d\n",sizeof(arr));
	printf("%d\n",sizeof(arr + 0));
	printf("%d\n",sizeof(*arr));
	printf("%d\n",sizeof(arr[1]));
	printf("%d\n",sizeof(&arr));
	printf("%d\n",sizeof(&arr + 1));
	printf("%d\n",sizeof(&arr[0] + 1));
		
	printf("%d\n",strlen(arr));
	printf("%d\n",strlen(arr + 0));
	printf("%d\n",strlen(*arr));
	printf("%d\n",strlen(arr[1]));
	printf("%d\n",strlen(&arr));
	printf("%d\n",strlen(&arr + 1));
	printf("%d\n",strlen(arr[0] + 1));

你能否说出每个输出的区别和输出的结果呢

分析:
sizeof(arr)//计算的数组的大小,单位是字节:7
sizeof(arr + 0);//计算的是地址的大小 -arr + 0是首元素的地址
sizeof(*arr)//1 *arr是首元素,sizeof(*arr)计算首元素的大小
sizeof(arr[1])//1 arr[1]是第二个元素,sizeof(arr[1])计算的是第二个元素的大小
sizeof(&arr)// 4/8 &arr虽然是数组的地址,但也是地址,所以是4/8个字节
sizeof(&arr + 1)// 4/8 &arr+1是跳过整个数组后的地址,但也是地址
sizeof(&arr[0] + 1)// 4/8 &arr[0]+1 第二个元素的地址
strlen(arr)//6 个字节
strlen(arr + 0)//6个字节
strlen(*arr)//error
strlen(arr[1])//error
strlen(&arr)//&arr - 数组的地址 - 数组指针 cahr(*p)[7] = &arr;
strlen(&arr + 1)//6个字节
strlen(arr[0] + 1)//随机值

char arr[] = "abcdef";
	
	printf("%d\n",sizeof(arr));//计算的数组的大小,单位是字节:7 
	printf("%d\n",sizeof(arr + 0));//计算的是地址的大小 -arr + 0是首元素的地址 
	printf("%d\n",sizeof(*arr));//1 *arr是首元素,sizeof(*arr)计算首元素的大小 
	printf("%d\n",sizeof(arr[1]));//1 arr[1]是第二个元素,sizeof(arr[1])计算的是第二个元素的大小 
	printf("%d\n",sizeof(&arr));// 4/8 &arr虽然是数组的地址,但也是地址,所以是4/8个字节 
	printf("%d\n",sizeof(&arr + 1));// 4/8 &arr+1是跳过整个数组后的地址,但也是地址 
	printf("%d\n",sizeof(&arr[0] + 1));// 4/8 &arr[0]+1 第二个元素的地址 
		
	printf("%d\n",strlen(arr));//6 
	printf("%d\n",strlen(arr + 0));//6
	printf("%d\n",strlen(*arr));//error
	printf("%d\n",strlen(arr[1]));//error
	printf("%d\n",strlen(&arr));//&arr - 数组的地址 - 数组指针 cahr(*p)[7] = &arr; 
	printf("%d\n",strlen(&arr + 1));//6
	printf("%d\n",strlen(arr[0] + 1));//随机值 
有关C/C++指针的经典面试题 参考一: 有关C/C++指针的经典面试题     C语言为何如此长寿并实用?C++为什么有那么多精彩?指针可以说是C/C++中的灵魂所在,虽然早期中pascal也有指针,但是和C/C++比起来不是一个级别的.今天为大家深入浅出的解析一下指针的有关笔试,面试题.所有题目来源网络,分析是我写的... 0.预备知识,最基础的指 阅读详情

相关推荐

MFC+Modbus-Tcp协议实现温湿度传感器采集

本文简单介绍MFC使用-Tcp通信实现系列MODBUSTCP型温湿度传感器采集数据。

zhigang_zhao的博客 2830

C语言——指针面试题详解

C语言——指针面试题详解

VHhhbb的博客 1291

内窥镜胶囊(胶囊内镜)硬件方案

内窥镜胶囊(胶囊内镜)硬件方案 前言 说明:该方案为作者2018年上半年完成的第一版,后来搁置了一段时间,才重启这个项目。目前(2020.07)第二版已经快要完成。[联系v:1#7#6#3#3#3#5#0#8#7#0]先给一下第一版和第二版的基本参数。 第一版: 续航时间:3h 帧率:0.5fps 尺寸:12mm * 25mm 角度:45° 第二版: 续航时间:12h 帧率:2-6fps 尺寸:9.8mm * 25mm 角度:130° 第一版属于尝试版,整体方案不是很成熟。第二版这个数据就非常优秀了。我拿了

CrekerLi的博客 4778

19.0、C语言——指针笔试面试题

首先我们要明白二维数组初始化中他用的是 ( ) ,那么这就是一个逗号表达式,实际上初始化的数据为 1 ,3 ,5 ,0 , 0 ,0;0x00100014 【p的大小已知是20字节,所以 p + 1就会跳过 20 字节,20转换为十六进制就是0x14】那么指针 p 存放的就是 1 的地址,p[ 0 ] = p+0 所以p[ 0 ] = 1。*(&arr) = *(整个数组的地址) = arr = 数组名 = 首元素地址;最后输出的结果是:f f f f f f f c,-4。输出的结果为 2 ,5。

m0_52433668的博客 615

完美解决LBP2900打印机安装驱动提示无法识别USB及连接错误等问题(附Win11全新安装支持及卸载方案)

LBP2900打印机虽然经典老旧,但在Win11上依然可以完美使用!许多网上教程都无视安装失败后的问题,在此分享一种全新、100%有效的方法来解决驱动连接错误和无法识别USB设备的问题。无论是新安装还是卸载重装,这个方法都适用。本文整合了通用驱动包,支持Win2000到Win11系统,操作简单,轻松摆脱安装困扰,享受无忧打印体验!

心开始の未来~的博客 2万+

SAP BW/4HANA 项目字段级数据血缘分析的方法与工具

利用SAP自带工具可以在一定程度上查看数据流和字段使用情况,但往往需要人工逐步深挖。适用于简单场景或验证单个字段的映射。借助SAP数据治理解决方案(如 Information Steward、Data Intelligence 等)能够自动整合元数据,提供图形化、跨系统的血缘分析,适合对数据 lineage 有严格要求的企业级项目。第三方工具则提供了灵活强大的功能,如自动文档、生成功能丰富的报告,对于复杂环境下的血缘分析和影响分析非常有帮助。自行开发SQL/CDS脚本。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 470

C语言关于指针的几道面试题(烧脑预警)

C语言关于指针的面试题第一题第二题第三题第四题第五题第六题第七题最终题第一个输出第二个输出第三个输出第四个输出总结 第一题 #include<stdio.h> int main() { int a[5] = { 1, 2, 3, 4, 5 }; int* ptr = (int*)(&a + 1); printf("%d,%d", *(a + 1), *(ptr -...

时过夏末 1490

Autosar MCAL-S32k324 Crypto配置-基于EB

NXP官网提供了免费的HSE固件,同时也提供了对应的协议栈。本文以算法为例,介绍MCAL相关的配置及在代码中的集成与使用。使用HSE计算,比软件算法确实方便许多。后面会完善更多的算法测试。

赞的博客 2434

【C语言】指针总结(面试)

各种指针定义:

qq_62361050的博客 1424

一文吃透 Tools for Applying SAP Notes:从 SNOTE、TCI 到 Solution Manager 与 SAP Cloud ALM

本文系统梳理了SAP技术与运维团队应用SAP Notes的高效工具与方法,涵盖On-Premise与云环境。文章首先阐述了精研SAP Notes工具的必要性,指出其是实施错误修复、法务变更和性能改进的关键载体。随后详细介绍了SNOTE、TCI、Solution Manager、Cloud ALM和Maintenance Planner等核心工具的定位与适用场景,并通过采购异常案例展示了标准更正流程。针对复杂修复场景,文章提出了TCI的批量处理方案,并强调将Note实施纳入变更治理流程的重要性。最后总结了三种

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 351

Spring AI Alibaba实战训练营-13语音生成应用开发指南

本文介绍了如何基于Spring AI Alibaba创建DashScope语音应用,支持文本转语音(TTS)和语音转文本(STT)功能。主要内容包括:1)环境准备要求Java 17+、Maven 3.6+及阿里云DashScope API Key;2)通过Spring Initializr创建项目并配置相关依赖;3)设置API密钥的安全配置方法;4)实现语音合成的同步和流式功能,包括创建控制器类、调用API接口及保存语音文件。文章提供了详细的代码示例和配置说明,帮助开发者快速搭建语音处理应用。

program哲学 403

c语言面试题__指针篇 (收集)

1. char * const p;  char const * p  const char *p  上述三个有什么区别?  char * const p; //常量指针,p的值不可以修改  char const * p;//指向常量的指针,指向的常量值不可以改  const char *p; //和char const *p------------------------------------

pureshf的专栏 1060

芒果YOLO11改进81:主干Backbone篇之DCNv3结构:即插即用|使用pytorch代码实现,并针对YOLO11专门优化模块

芒果YOLO11改进81:主干Backbone篇之DCNv3结构:即插即用|使用pytorch代码实现,并针对YOLO11专门优化模块

包括YOLOv5、YOLOv7、YOLOv8等模型改进 736

100条经典C语言笔试题目

https://blog.youkuaiyun.com/qq_36032963/article/details/64479469 https://www.nowcoder.com/questionCenter 牛客网试题广场 题目来源:1、中兴、华为、慧通、英华达、微软亚洲技术中心等中外企业面试题目;2、C 语言面试宝典(林锐《高质量编程第三版》)。说明:1、部分C 语言面试题中可能会参杂部分和C++ 相...

EminentBoy的博客 10万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【C语言进阶】指针详解

C语言中的指针是理解和使用C语言的关键部分。它们提供了对内存的直接访问能力,指针的使用可以极大地提高程序的效率和灵活性。但同时也需要谨慎使用,以避免内存泄漏、越界访问等错误。

byte轻骑兵的技术小窝 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

精心整理的C语言面试题目

由于最近去找工作,面过了很多题目,想起了当年学习C语言的很多往事。面试回来后精心整理了一些面试题目,并进行了分类,      一是对思路的整理,二是为后来者造福。 以下是各种题目: #语法问题: 1.用typedef 定义一个包含10个整型的类型。 注:typedef int NUMBER[10]; NUMBER 声明为含有10个元素的数组类型。 NUMBER n; n[0

Gary 的影响力 3万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【详解C语言指针】我真的让C指针给我唱征服了~乌拉

结合图解,深入探究指针,非常值得学习!

大猩猩!的博客 2万+

c语言 指针

目录c语言 指针c语言 指针概念c语言 指针大小c语言 指针类型的意义 c语言 指针 c语言 指针概念 指针是个变量,存放内存单元的地址(编号)。 #include <stdio.h> int main() { int a = 10; // 在内存中开辟一块空间,存储10 int* p = &a; // 这里我们对变量a,取出它的地址,可以使用&操作符。 //将a的地址存放在p变量中,p就是一个之指针变量。 return 0; } c语言 指针大小 指针的大小在32位平

qq_43192537的博客 5318

【C语言进阶篇】关于指针的八个经典笔试题(图文详解)

你真的学会指针了嘛, 快来康康关于指针的八个经典笔试题把!全面检验你对指针的各个知识点的掌握情况!(面试真题)

鸽芷咕的博客 3929

【C语言】一道指针面试题详解

一道在学习C语言中出现的面试题,搞清楚这道题基本上就理清了指针大部分的相关内容。下面我将逐句拆解,将我理解的写下,给学习C语言的同学们做参考。

MeiYu_123的博客 1092

C语言面试题每日一练(二)

C语言作为嵌入式Linux开发的必备工具,作为嵌入式Linux开发的基础语言,那么在面试嵌入式工程师时C语言定是面试中的重中之重 。作为一名开学就大三的老学长,不得不为找工作做必要准备。每天做一道C语言面试题,为面试打基础

万里羊的博客 7065

C语言——指针(四)

C语言指针(四),详细,保姆级讲解指针类型,希望对您有所帮助,学习ing

tan_run的博客 1990

【C语言进阶】为了通过面试,是时候升级你的指针了

在之前的初阶学习中,相信各位小伙伴们已经对指针有了相当的了解。那么从今天开始,我们将继续探讨指针的更高级主题,希望对大家的学习能够有所帮助!

weixin_59392935的博客 971

【C语言进阶】指针面试题详解(2)

关于指针的面试题,几乎涵盖所有内容,帮助你对指针的理解!

欢迎来到我的博客,有问题可以联系:luoshuaishuai2001@163.com 1232

C语言指针详解(进阶)

正片开始 ,在上一篇当中我们已经介绍了指针的基本概念以及一些基本的用法,让我们一起。去探讨一下指针中更为深奥的知识,学会指针,编程从此不再害怕!7. 指向函数指针数组的指针。9. 指针和数组面试题的解析。4. 数组传参和指针传参。

L286594的博客 2182

C语言——指针详解 下

函数指针变量是用来存放函数地址的,未来可以通过地址调用函数。函数的地址就是函数名,Fun与&Fun完全等价。例如:将 unsigned int 改写为 uint。输出示例:那要把函数的地址存到⼀个数组中,那这个数组就叫函数指针数组。parr1 先和 [ ] 结合,说明parr1是数组,数组的内容是 int ( * )( ) 类型的函数指针。回调函数就是一个通过函数指针调用的函数。如果你把函数的指针作为参数传递给另⼀个函数,当这个指针被用来调用它指向的函数时,被调用的函数就是回调函数。

2401_84221778的博客 1278
上一篇: 《2020-2021中国开发者调查报告》发布了!
下一篇: mac下安装pip
极客范儿
极客范儿 新星创作者: 游戏开发技术领域 新星创作者: 游戏开发技术领域 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄12年 1万+粉丝 341原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客范儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值