当前位置: 首页 > news >正文

【C语言】指针经典笔试题(上)

C语言的一大重头戏就是指针。

对于指针有一些认识:

1.指针是存放变量的地址,一般说的指针和指针变量是一个概念。

2.地址的单位是字节,大小在不同编译器环境下有所不同,32位机器是4个字节,64位机器是8个字节。

3.数组名是首元素的地址,有俩个例外,sizeof(arr)和&arr,这俩个的数组名都是整个地址。吗,

4.指针类型的作用:解引用时可以访问多少个字节。

    int指针类型可以访问4个字节

    char指针类型可以访问1个字节(可以来求大小端)

下面是一些sizeof的计算。【注意:sizeof不是一个函数,是一个操作符,能计算括号内的字节大小】

首先定义了一个数组,数组中有5个元素。

1.sizeof(a)

这里的数组名a是俩种特殊情况之一,所以是代表整个数组,也就是求整个数组的字节大小。

这个数组中有5个元素,每个元素都是int类型(4个字节),所以答案是4*5等于20

2.sizeof(a+0)

因为不是那俩种特殊情况,所以这里的a是首元素地址,+0还是首元素,一个地址的大小就是4/8.

3.sizeof(*a)

对首元素地址解引用,相当于是取出了a[0],一个整形的字节是4,所以答案是4

4.sizeof(a+1)

首元素地址跳过一个单位,会到a[1]的位置,所以求的是a[1]地址大小,一个地址的大小也就是4/8.

5.sizeof(a[1])

求一个整形的大小,答案是4

6.sizeof(&a)

&a代表整个数组的地址,但也还是个地址,地址的大小4/8

7.sizeof(*&a)

*和&可以抵消,相当于是sizeof(a),a这里代表整个数组,所以答案是4*5==20

8.sizeof(&a+1)

&a取出整个数组的地址,然后+1表示跳过整个数组,会跳到数组最后一个元素的下一个元素地址,只要是地址,答案还是4/8

9.sizeof(&a[0])
求a[0]的地址大小,答案是4/8

10.sizeof(&a[0]+1)

求a[1]的地址大小,答案是4/8

http://www.lryc.cn/news/173614.html

相关文章:

  • 缓存问题解决方案
  • 数据结构————寻路算法
  • 蓝桥杯 题库 简单 每日十题 day7
  • go -- 获取当前24点的时间戳 --chatGpt
  • docker 容器内手动设置服务自启动
  • 腾讯云微服务平台 TSF 异地多活单元化能力重磅升级
  • 01贪心:算法理论知识
  • 目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
  • PageHelp插件在复杂sql下引起的Having无法识别错误及其解决方案
  • linux中的开发工具
  • 2023 第十二届中国智能产业高峰论坛 - 文档大模型的未来展望
  • 【小沐学NLP】关联规则分析Apriori算法(Mlxtend库,Python)
  • 对话ChatGPT:AIGC时代下,分布式存储的应用与前景
  • java多线程学习笔记一
  • BOM与DOM--记录
  • Docker安装MongoDB
  • 不要对正则表达式进行频繁重复预编译
  • vue入门及小项目小便签条
  • 详解TCP/IP协议第四篇:数据在网络中传输方式的分类概述
  • SpringMvc决战-【SpringMVC之自定义注解】
  • 【MySQL集群一】CentOS 7上搭建MySQL集群:一主一从、多主多从
  • RGB格式
  • 认识面向对象-PHP8知识详解
  • 毕业设计|基于51单片机的空气质量检测PM2.5粉尘检测温度设计
  • 星闪空口技术初探
  • 如何在不失去理智的情况下调试 TensorFlow 训练程序
  • 24. 图论 - 图的表示种类
  • C++ 读bin文件,部分代码。赚经验。
  • vue3 父子组件传值
  • 【看懂MPLS LSP表项】