C语言进阶课程学习记录-第27课 - 数组的本质分析

C语言进阶课程学习记录-第27课 - 数组的本质分析

    • 数组
    • 实验-数组元素个数的指定
    • 实验-数组地址与数组首元素地址
    • 实验-指针与数组地址的区别
    • 小结

本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程,图片全部来源于课程PPT,仅用于个人学习记录

数组

在这里插入图片描述
在这里插入图片描述

实验-数组元素个数的指定

#include <stdio.h>int main()
{int a[5] = {1, 2};int b[] = {1, 2};int c[5] = {0};printf("a[2] = %d\n", a[2]);printf("a[3] = %d\n", a[3]);printf("a[4] = %d\n", a[4]);printf("sizeof(a) = %d\n", sizeof(a));printf("sizeof(b) = %d\n", sizeof(b));printf("count for a: %d\n", sizeof(a)/sizeof(int));printf("count for b: %d\n", sizeof(b)/sizeof(int));printf("c[0] = %d\n", c[0]);printf("c[1] = %d\n", c[1]);printf("c[2] = %d\n", c[2]);printf("c[3] = %d\n", c[3]);printf("c[4] = %d\n", c[4]);return 0;
}
/*
output:a[2] = 0
a[3] = 0
a[4] = 0
sizeof(a) = 20
sizeof(b) = 8
count for a: 5
count for b: 2
c[0] = 0
c[1] = 0
c[2] = 0
c[3] = 0
c[4] = 0*/

在这里插入图片描述

实验-数组地址与数组首元素地址

#include <stdio.h>int main()
{int a[5] = { 0 };printf("a = %p\n", a);printf("&a = %p\n", &a);printf("&a[0] = %p\n", &a[0]);return 0;
}
/*
output:a = 0060FEEC
&a = 0060FEEC
&a[0] = 0060FEEC*/

在这里插入图片描述

实验-指针与数组地址的区别

#include <stdio.h>
int main()
{int a[5] = {0};int b[2];int* p = NULL;p = a;printf("a = %p\n", a);printf("p = %p\n", p);printf("&p = %p\n", &p);printf("sizeof(a) = %d\n", sizeof(a));printf("sizeof(p) = %d\n", sizeof(p));printf("\n");p = b;printf("b = %p\n", b);printf("p = %p\n", p);printf("&p = %p\n", &p);printf("sizeof(b) = %d\n", sizeof(b));printf("sizeof(p) = %d\n", sizeof(p));//b = a;//error: incompatible types when assigning to type 'int[2]' from type 'int *'|return 0;
}
/*
output:a = 0060FEEC
p = 0060FEEC
&p = 0060FEE0
sizeof(a) = 20
sizeof(p) = 4b = 0060FEE4
p = 0060FEE4
&p = 0060FEE0
sizeof(b) = 8
sizeof(p) = 4*/

小结

数组是一片连续的内存空间
数组的地址和数组首元素的地址意义不同
数组名在大多数情况下被当成指针常量处理
数组名其实并不是指针,不能将其等同于指针

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

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

相关文章

Debian安装1panel管理面板教程-最新

1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。 1Panel面板是一个强大的服务器管理工具&#xff0c;它通过提供一站式管理、易于使用的界面、高度的可定制性、安全可靠的性能、强大的扩展性以及活跃的社区支持&#xff0c;为用户提供了一个高效、便捷的管理解决方案…

基于springboot实现常州地方旅游管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现旅游管理系统演示 摘要 随着旅游业的迅速发展&#xff0c;传统的旅游信息查询方式&#xff0c;已经无法满足用户需求&#xff0c;因此&#xff0c;结合计算机技术的优势和普及&#xff0c;针对常州旅游&#xff0c;特开发了本基于Bootstrap的常州地方旅游管…

记Kubernetes(k8s):访问 Prometheus UI界面:Warning: Error fetching server time

记Kubernetes&#xff08;k8s&#xff09;&#xff1a;访问 Prometheus UI界面:Warning: Error fetching server time 1、报错详情2、解决3、再次访问 PrometheusUI界面 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1、报错详情 Warning:…

vue2 使用vue-org-tree demo

1.安装 npm i vue2-org-tree npm install -D less-loader less安装 less-loader出错解决办法&#xff0c;直接在package.json》devDependencies下面加入less和less-loader版本&#xff0c;然后执行npm i &#xff0c;我用的nodejs版本是 16.18.0&#xff0c;“webpack”: “^4…

计算机专业,不擅长打代码,考研该怎么选择?

考研其实和你的代码能力关系不大 所以在选学校以前可以看看有哪些学校复试是要求上机撸代码的&#xff0c;可能会要求比较严 初试真的不用担心代码问题&#xff0c;我也是基本零编程能力就开始备考考研的... 本人双非科班出身备考408成功上岸&#xff0c;在这里也想给想考40…

在Linux系统上实现TCP(socket)通信

一.什么TCP TCP&#xff08;传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议。 二.TCP通信流程 三. TCP 服务器端 1 创建socket int sockfd socket(AF_INET, SOCK_STREAM, 0); //SOCK_STREAM tcp通信2 绑定(bind) struct sockaddr_in myad…

计算机组成原理(超详解!!) 第五节 只读存储器和闪速存储器

1.只读存储器&#xff08;Read Only Memory&#xff09; 1、ROM的分类 最大优点&#xff1a;具有非易失性 掩膜ROM&#xff1a; PROM基本存储电路&#xff1a; 2.闪速存储器 FLASH存储器也翻译成闪速存储器&#xff0c;它是高密度非失易失性的读/写存储器。高密度意味着它具…

Docker 搭建私有镜像仓库

一、镜像仓库简介 Docker的镜像仓库是一个用于存储和管理Docker镜像的中央位置。镜像仓库的主要作用是提供一个集中的地方&#xff0c;让用户可以上传、下载、删除和共享Docker镜像。镜像仓库又可以分为公共镜像仓库和私有仓库镜像仓库&#xff1a; 公共镜像仓库 Docker Hub 是…

Day94:云上攻防-云服务篇弹性计算云数据库实例元数据控制角色AK控制台接管

目录 云服务-弹性计算服务器-元数据&SSRF&AK 前提条件 利用环境1&#xff1a;获取某服务器权限后横向移动 利用环境2&#xff1a;某服务器上Web资产存在SSRF漏洞 云服务-云数据库-外部连接&权限提升 云上攻防-如何利用SSRF直接打穿云上内网 知识点&#xff1…

Xinstall:让App数据一目了然的专业统计分析软件

在当今数字化时代&#xff0c;App已成为企业营销的重要阵地。为了更好地推广App并优化运营策略&#xff0c;一款强大的统计分析软件显得尤为重要。Xinstall&#xff0c;作为国内专业的App全渠道统计服务商&#xff0c;正是您理想的选择。 Xinstall至今已服务近40亿次App安装统…

直播系统的短视频直播源码,带有多功能后台系统的直播短视频平台 APP 源码。

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 此源码是一个直播系统&#xff0c;集直播、短视频等功能&#xff0c;根据市场趋势开发并推出思乐直播APP&#xff0c;APP功能丰富且可在后台管理系统进行配置&#xff0c;做到按需求来…

零基础如何闯入IT的神秘大门?

前言 随着信息技术的飞速发展&#xff0c;IT行业成为了许多有志之士梦寐以求的职业领域。但对于零基础的人来说&#xff0c;如何成功进入这个行业却是一个不小的挑战。下面&#xff0c;我将结合自身的C语言专业知识&#xff0c;为大家详细阐述一条可行的学习路径&#xff0c;并…

笔记:[dv-admin开发系列]--2.0版本环境搭建

目录 来源新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公…

数字社交的新典范:解析Facebook的成功密码

在当今数字化时代&#xff0c;社交媒体已经成为人们日常生活的重要组成部分&#xff0c;而Facebook作为最知名的社交媒体平台之一&#xff0c;其成功之处备受瞩目。本文将深入解析Facebook的成功密码&#xff0c;探讨其在数字社交领域的新典范。 1. 用户体验的优化 Facebook注…

golang slice总结

目录 概述 一、什么是slice 二、slice的声明 三、slice的初始化、创建 make方式创建 创建一个包含指定长度的切片 创建一个指定长度和容量的切片 创建一个空切片 创建一个长度和容量都为 0 的切片 new方式创建 短声明初始化切片 通过一个数组来创建切片 声明一个 …

【群智能算法改进】一种改进的鹦鹉优化算法 改进鹦鹉优化器 IPO算法【Matlab代码#73】

文章目录 【获取资源请见文章第5节&#xff1a;资源获取】1. 原始鹦鹉优化算法PO2. 改进后的IPO算法2.1 自适应切换因子2.2 混合柯西和高斯变异 3. 部分代码展示4. 仿真结果展示5. 资源获取 【获取资源请见文章第5节&#xff1a;资源获取】 1. 原始鹦鹉优化算法PO 鹦鹉优化算法…

【Vue】生命周期

生命周期钩子(lifecycle-hooks) 每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤&#xff0c;比如设置好数据侦听&#xff0c;编译模板&#xff0c;挂载实例到 DOM&#xff0c;以及在数据改变时更新 DOM。在此过程中&#xff0c;它也会运行被称为生命周期钩子的函数&a…

【APUE】网络socket编程温度采集智能存储与上报项目技术------多路复用

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…

【项目精讲】RESTful简洁描述

RESTful是什么 是一种架构风格/API设计规范将一切数据视为资源利用HTTP请求方式 POST、GET、PUT、DELETE&#xff0c;描述对资源的操作 GET 获取资源POST 新建资源PUT 更新资源DELETE 删除资源 通过HTTP响应状态码&#xff0c;描述对资源的操作结果请求数据和英大数据均为JSO…

蓝桥杯嵌入式2023年第十四届省赛主观题解析

1 题目 2 代码 /* Includes ------------------------------------------------------------------*/ #include "main.h" #include "adc.h" #include "rtc.h" #include "tim.h" #include "gpio.h"/* Private includes --…