【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.hqwc.cn/news/116035.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【功能设计】数据分发功能设计

文章目录 设计脑图功能性非功能性 功能设计文档1. 需求分析1.1、功能性需求1.2、非功能性需求 2. 功能设计2.1 业务流程图2.2 数据流图2.3 表结构设计2.4 接口设计2.5 功能点 3.非功能性设计3.1 性能3.2 可用性3.3 并发性3.4 安全性 设计脑图 功能性 非功能性 功能设计文档 1…

kafka消费者多线程开发

目录 前言 kafka consumer 设计原理 多线程的方案 参考资料 前言 目前,计算机的硬件条件已经大大改善,即使是在普通的笔记本电脑上,多核都已经是标配了,更不用说专业的服务器了。如果跑在强劲服务器机器上的应用程序依然是单…

LeetCode 416.分割等和子集(动态规划【0-1背包问题】采用一维数组dp:滚动数组)

>>往期文章: 解决0-1背包问题(方案一):二维dp数组_呵呵哒( ̄▽ ̄)"的博客-CSDN博客 解决0-1背包问题(方案二):一维dp数组(滚动数组)_呵呵哒(&…

LeetCode 1993. 树上的操作:大模拟

【LetMeFly】1993.树上的操作:大模拟 力扣题目链接:https://leetcode.cn/problems/operations-on-tree/ 给你一棵 n 个节点的树,编号从 0 到 n - 1 ,以父节点数组 parent 的形式给出,其中 parent[i] 是第 i 个节点的…

【100天精通Python】Day68:Python可视化_Matplotlib 绘制热力图,示例+代码

目录 1 值热力图(Value Heatmap): 2 密度热力图(Density Heatmap) 3 时间热力图(Time Heatmap): 4 空间热力图(Spatial Heatmap) 5 渐变热力图(Gradient Heatmap&am…

机器学习的主要内容

分类任务 回归任务 有一些算法只能解决回归问题有一些算法只能解决分类问题有一些算法的思路既能解决回归问题,又能解决分类问题 一些情况下, 回归任务可以转化为分类任务, 比如我们预测学生的成绩,然后根据学生的成绩划分为A类、…

JDK21新特性

JDK 21 于 2023 年 9 月 19 日正式发布。Oracle 提供GPL 下的生产就绪二进制文件;其他供应商的二进制文件也将很快推出。 Spring Boot 3.x 版本最低支持的 JDK 版本为 JDK 17,也就是说如果你还想用 JDK8的话,那能用的最高 Spring Boot 版本为…

代码随想录算法训练营 动态规划part17

一、回文子串 647. 回文子串 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int countSubstrings(String s) {boolean[][] dp new boolean[s.length()][s.length()];int ans 0;for (int j 0; j < s.length(); j) {for (int i 0; i < j; i) {if …

linux安装sqoop

目录 一 解压安装包 二 修改配置文件 三 拷贝 jar 包 &#xff08;1&#xff09;sqoop147目录下补全 jar 包 &#xff08;2&#xff09;lib 目录下补全 jar 包 四 修改环境变量 五 查看 sqoop 版本以及测试连接 一 解压安装包 这里提供了网盘资源 链接: https://pan.ba…

三、初识FreeRTOS之FreeRTOS基础知识

从这节开始&#xff0c;我们正式学习FreeRTOS的一些基础知识&#xff0c;争取做到日更&#xff0c;或者隔日更。如果在学习的过程中哪里有理解错误&#xff0c;希望各位朋友批评指正。因为自己觉得图文并茂好像更容易理解一点&#xff0c;所以在博文中加了大量的图片&#xff0…

SpringMVC之自定义注解

目录 一.JAVA注解简介 1.1.Java注解分类 1.2.JDK元注解 二.自定义注解 1.1.如何自定义注解 1.2.自定义注解的基本案例 1.2.1.案例一&#xff08;获取类与方法上的注解值&#xff09; 1.2.2.案例二&#xff08;获取类属性上的注解属性值&#xff09; 1.2.3. 案例三&#xff…

Qt: 鼠标形状设置

设置全局鼠标形状 设置完毕后&#xff0c;整个APP的任何窗体&#xff0c;包括Dialog中的鼠标形状都会被修改为设定类型&#xff0c;某一个控件设定的鼠标形状将被替换。一般不建议使用 QCursor cursor;//创建鼠标对象 cursor.setShape(Qt::CursorShape::ClosedHandCursor);//…