数组和指针复习

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

//int main()
//{
//    int a = 0;
//    int* pa = &a;//pa是指针变量
//    *pa = 20;
//    printf("%d\n", a);
//
//    char ch = 'w';
//    char* pc = &ch;     //指针类型的意义:1.决定了指针+1或-1的操作时,会跳过几个字节
//                        //                2.决定了解引用操作时的权限    
//    
//                        
//    //数组名:
//    //1.数组名在大部分情况下表示:数组首元素的地址
//    //但是有两个例外:下面两种情况数组名表示整个数组
//    // a) sizeof(数组名)
//    // b) &数组名
//    //2.&数组名:取出的是数组的地址
//
//    int arr[10] = { 1,2,3 };
//    int (*parr)[10] = &arr;//parr就是数组指针:指向数组的指针
//
//    return 0;
//}

//函数指针
//函数也是有地址的
//int Add(int x, int y)
//{
//    return x + y;
//}
//
//int main()
//{
//    printf("%p\n", &Add);
//
//    int (*pf)(int, int) = &Add;
//    //函数的地址存放到函数指针变量中
//    //int sum = (*pf)(2, 3);
//    int sum = pf(2, 3);
//    printf("%d\n", sum);
//    
//    return 0;
//}

//函数指针数组:
//int (*pfArr[4])(int, int);
//pfArr数组的每个元素类型是int(*)(int, int)

//函数指针实现回调函数:
//通过函数指针调用的函数就是回调函数

//qsort - 使用冒泡排序的思想,模拟实现了qsort函数
//1.qsort怎么使用
//2.知道qsort怎么使用回调函数实现的通用排序


//
//数组名的理解
//指针的运算和指针类型的意义
//
int main()
{
    int a[] = { 1,2,3,4 };

    printf("%d\n", sizeof(a));//16
    //sizeof(数组名),数组名表示整个数组,计算的是整个数组的大小,单位是字节
    printf("%d\n", sizeof(a + 0));//4或8
    //a不是单独存放在sizeof内部,也没有取地址,所以a就是首元素的地址,a+0还是首元素的地址
    //是地址,大小就是4或8个字节
    printf("%d\n", sizeof(*a));//4
    //*a中的a是数组的首元素地址,*a就是对首元素的地址解引用,找到的就是首元素
    //首元素的大小就是4个字节
    printf("%d\n", sizeof(a + 1));//4或8
    //这里的a是数组首元素的地址
    //a+1是第二个元素的地址
    //sizeof(a+1)就是地址的大小
    printf("%d\n", sizeof(a[1]));//4
    //计算的是第二个元素的大小
    printf("%d\n", sizeof(&a));//4或8
    //&a取出的是数组的地址,数组的地址,也就是个地址
    //是地址,大小就是4或8个字节
    printf("%d\n", sizeof(*&a));//16
    //*和&抵消了,*&a就相当于a
    //&a得到的是数组的地址,类型是int(*)[4],是一种数组指针
    //数组指针解引用找到的是数组
    printf("%d\n", sizeof(&a + 1));//4或8
    //&a取出的是数组的地址,类型是int(*)[4]
    //&a+1是从数组a的地址向后跳过了一个有4个整型元素的数组的大小
    //还是一个地址,大小就是4或8个字节
    printf("%d\n", sizeof(&a[0]));//4或8
    //&a[0]就是第一个元素的地址
    //计算的就是地址的大小
    printf("%d\n", sizeof(&a[0] + 1));//4或8
    //&a[0]+1是第二个元素的地址
    //大小是4或8个字节
    
    return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows自带录屏好用吗?四大录屏工具轻松实现高效录屏!

Windows系统自带的录屏工具其实就是Xbox Game Bar。今天&#xff0c;除了这个工具&#xff0c;我还会为大家推荐几款实用录屏工具&#xff0c;让大家轻松实现高效录屏&#xff01; 福昕录屏软件 直达链接&#xff1a;www.foxitsoftware.cn/REC/ 操作教程&#xff1a;立即获取…

本地缓存库分析(一):golang-lru

文章目录 本地缓存概览golang-lru标准lrulru的操作PutGet 2q&#xff1a;冷热分离lruPutGet expirable_lru&#xff1a;支持过期时间的lruPutGet过期 总结 本地缓存概览 在业务中&#xff0c;一般会将极高频访问的数据缓存到本地。以减少网络IO的开销&#xff0c;下游服务的压…

css 切角实现(全)

效果 样式代码 <template><div class"container"><div class"clip-all-angle"> 4个角全部剪切 </div><div class"clip-two-angle"> 切底部两个角 </div><div class"clip-two-top-angle"> …

1.2.2 算法的时间复杂度

那么我们如何评估算法的时间开销&#xff1f; 存在什么问题? 和机器性能有关&#xff0c;如:超级计算机 v.s. 单片机 和编程语言有关&#xff0c;越高级的语言执行效率越低 和编译程序产生的机器指令质量有关 有些算法是不能事后再统计的&#xff0c;如:导弹控制算法 能否事…

Spring Boot框架下的酒店住宿登记系统

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

PIL处理器在环测试

目录 PIL处理器在环测试介绍 PIL测试过程 编译模块 测试结果 PIL处理器在环测试介绍 SIL测试是验证代码和模型的一致性&#xff0c;代码运行在Windows平台上&#xff0c;某种程度上说&#xff0c;这并不能保证代码到目标处理器上的运行结果也能够和模型保持一致。所以&…

ctfshow的sql注入解题思路171-211

ctfshow-SQL注入 web171&#xff1a;爆库名->爆表名->爆字段名->爆字段值 -1 union select 1,database() ,3 -- //返回数据库名 -1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema库名 -- //获取数据库里的表名 -…

【华为\荣耀、中兴、华三路由器IPV6设置】

华为\荣耀、中兴、华三路由器ipv6设置 华为\荣耀设置-路由器拨号情况下中兴设置-路由器拨号情况下华三设置-光猫拨号情况下&#xff08;待续&#xff09; 华为\荣耀设置-路由器拨号情况下 如图设置就行 中兴设置-路由器拨号情况下 中兴路由器有两个设置地方也是如图设置 …

一站式AI自动化剪辑 内置多种功能 永久免费

AI影视解说自动化剪辑工具&#xff0c;功能非常强大&#xff0c;吊打所有视频解说&#xff0c;解放双手&#xff0c;从我开始 【资源名称】&#xff1a;纳拉托艾 【资源大小】&#xff1a;1.27 【资源版本】&#xff1a;0.1 【测试机型】&#xff1a;Win11. 【资源介绍】&a…

基于SSM+小程序的智慧旅游平台登录管理系统(旅游2)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 旅游平台开发微信小程序功能有管理员和用户。 1、管理员功能有个人中心&#xff0c;用户管理&#xff0c;景点分类管理&#xff0c;旅游景点管理&#xff0c;景点购票管理&#xff0c;景…

Leetcode刷题笔记13

DP35 【模板】二维前缀和 【模板】二维前缀和_牛客题霸_牛客网 解法一&#xff1a;暴力解法 -> 模拟 直接算区间里面的和 每次询问都要遍历数组一遍 时间复杂度&#xff1a;O(n*m*q) 解法二&#xff1a;前缀和 1. 预处理出来一个前缀和矩阵 dp[i][j]表示&#xff1a;从[…

VisionPro Basic - 01- 有关应用和作业

前言&#xff1a; VP&#xff08;VisionPro&#xff09;的保存文件都是.vpp&#xff0c;所以&#xff0c;你在保存的时候&#xff0c;一定要注意区别。否则&#xff0c;过了几天&#xff0c;你都搞不清楚自己当年哪个的应用&#xff0c;哪个是作业... 环境&#xff1a; 例子1&…

高级网络互联技术:AS3001与AS3000的路由交换方案

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

数字化转型项目实施方案建议书|168页PPT

文 档是一份关于数字化转型项目的实施方案建议书&#xff0c;由某咨询公司为***集团制定。文档详细介绍了项目的实施范围、信息系统现状、建设目标、高阶方案建议以及项目组织和计划。 以下是对文档内容的解读&#xff1a; 项目实施范围&#xff1a;涵盖了数字化转型路线图中…

CSP-J2024 全网首发

T1:扑克牌 题目描述 Description 小 P 从同学小 Q 那儿借来一副 n 张牌的扑克牌。 本题中我们不考虑大小王&#xff0c;此时每张牌具有两个属性:花色和点数。花色共有 4种: 方片、草花、红桃和黑桃。点数共有 13 种&#xff0c;从小到大分别为A 2 3 4 5 6 7 8 9 T J Q K。注意…

【3DMAX科研绘图】3DMAX饼状图生成插件PieChart使用方法详解

3DMAX饼状图生成插件PieChart&#xff0c;一款用于制作3D饼状图的工具。可以设置任意数量的切片&#xff0c;以及随机或指定切片颜色。 饼状图&#xff08;Pie Chart&#xff09;是一种常用的数据可视化工具&#xff0c;它主要用于展示不同类别数据的比例关系。在饼状图中&…

ERPS环网配置

ERPS&#xff08;Ethernet Ring Protection Switching&#xff09;&#xff1a;以太网多环保护技术 ERPS节点信息 1、RPL owner 节点&#xff08;主节点&#xff09; 一个 ERPS 环只有一个 RPL owner 节点&#xff0c;由用户配置决定&#xff0c;通过阻塞 RPL 端口来防止 ERP…

.NET 一款内网渗透中替代PowerShell的工具

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

笔记整理—linux驱动开发部分(1)驱动梗概

驱动可以分为广义上的和狭义上的驱动。广义上的驱动是用于操作硬件的代码&#xff0c;而狭义上的驱动为基于内核系统之上让硬件去被操作的逻辑方法。 linux体系架构&#xff1a; 1.分层思想 &#xff1a;在OS中间还会有许多层。 : 2.驱动的上面是系统调用&#xff08;API&…

Springboot 整合 Java DL4J 实现智能客服

&#x1f9d1; 博主简介&#xff1a;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编程&#xff0c;…