首页 > 其他分享 >牛客网语法直播笔记-前30分钟-无图

牛客网语法直播笔记-前30分钟-无图

时间:2023-11-16 13:33:16浏览次数:34  
标签:10 下标 定义 30 越界 牛客 编译器 数组 无图

学习网址:https://www.nowcoder.com/study/live/528/1/1

第一个问题:数组下标越界

数组下标越界

没有规定说声明的数组要挨着放,也就是图中的abc三个数组是没有规定地址是连在一起的,一般来说编译器是会这么干的,而且每个编译器的都会在之间留点空(也就是0)每个编译器所留的空还不一样。

这里看到上面的两个运行结果输出不一样的内容(相反),是因为

int a[10],b[10];
想访问b[-10]来达到访问a[9]的效果
因为上面说了编译器一般会把定义的数组地址连在一起,所以这样子定义看起来没问题
但是在上图中显示的运行结果说明:
    第二个代码定义的数组是从c数组开始到a数组结束
    第一个代码定义的数组是从a数组开始到c数组结束

像这种情况就要先去看数组还能正常运行吗(数组还活着吗)

上面的代码中的一个逻辑就是
因为定义数组一般都是连续的
所以如果数组下标越界了,
就比如在赋值b数组的值的时候,越界了,a数组就b数组的后面,那么数值就会继续赋值给a数组里面的元素
反之,c在b数组的后面的话就会赋值给c数组里面的值

第二个问题:函数的传参顺序

上面的图中,左边的代码执行结果为2,3;右边的图结果为3, 3
右边的是先将b=b+1执行了之后,再将b值传进去。
不同的操作系统方式是不一样的,不同的编译器也是不一样的

Linux系统下,会先传左边的。


标签:10,下标,定义,30,越界,牛客,编译器,数组,无图
From: https://blog.51cto.com/youyeye/8417357

相关文章

  • 若依vue启动报Error: error:0308010C:digital envelope routines::unsupported
    解决:若依vue启动报Error:error:0308010C:digitalenveloperoutines::unsupported1.描述:问题产生原因是因为node.jsV17版本中最近发布的OpenSSL3.0,而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响.解决方法:有很多种,我把适合我的写在第一......
  • 35 岁实现财务自由,腾讯程序员手握2300万提前退休?
    每天行色匆匆,毫无生气的往返于公司与家的两点一线;承受着来自公司、部门的内卷,领导的PUA;相信,现下很多年轻人都会感慨什么时候才能实现财务自由,提前过上“退休生活”那么财务自由的标准是什么?最近看到一个有意思的帖子:一腾讯员工说自己35岁,存够2300万,懒得打工,提前养老退休了!引发......
  • day130-springboot的各种配置与应用
    编写springboot应用看官方文档DevelopingwithSpringBoot查看场景依赖,引入对应自动配置的场景,编写配置文件中debug=true开启自动配置报告。Negative(不生效)Positive(生效)Lombok的应用Lombok用标签方式代替构造器、getter/setter、toString()等鸡肋代码。引入依赖......
  • SP12304
    题目传送门简述题目:题目要求找出满足条件\(σ(i)=n\)的最小整数\(i\),其中\(σ(i)\)表示\(i\)的所有正因子的和。解题思路:首先定义一个函数\(Suum(i)\),用于计算\(i\)的所有正因子的和。在函数内部,使用一个循环遍历\(i\)的所有可能因子。对于每一个因子\(i\),如......
  • 牛客题霸 BM1 反转链表
    BM1 反转链表  简单  通过率:38.76%  时间限制:1秒  空间限制:256M知识点链表描述给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。 数据范围: 0\leqn\leq10000≤n≤1000要求:空间复杂度......
  • [ABC230F] Predilection
    题目描述:芷萱姐姐有一个长度为\(N\)的数列\(A_i\)。你可以进行若干次,最多\(N-1\)次操作,选择相邻的两个数,删去他们,并在原位置放上他们两个的和。现在你需要求出可能产生的序列个数。数据范围:\(1\leN\le2\times10^5\)\(|A_i|\le10^9\)思路:我们首先会发现一件......
  • 牛客-sql编程-错误
    问题:程序异常退出,请检查代码"是否有数组越界等异常"或者"是否有语法错误"SQL_ERROR_INFO:"YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'--合并表\nselect*\nfrom(\nselec......
  • 2023NOIP A层联测30 总结
    2023NOIPA层联测30总结题目T1草莓列车\(n\leq10^5,m\leq10^7\)赛时思路一开始看错\(m\)数据范围,以为\(O(m\logm)\)可以过,后来发现问题以后,集中在考虑线段树之类的\(\log\)级别的算法维护序列,或者线段区间,一直没有想过ST表相关数据结构,于是最后只有60。赛后......
  • AT_abc230_f [ABC230F] Predilection 题解
    prelogue各位在比赛的时候一定要坚信自己的式子,然后去考虑自己的实现是不是挂了。本人在今天模拟赛的时候质疑自己的式子然后不看实现100->0。analysis考虑对这个给定数组进行前缀和,然后就将问题转化成为了求这个前缀和数组的子序列的个数。对于求子序列,我们很轻松可以写出......
  • 秦疆的Java课程笔记:30 基础 三元运算符及小结
    扩展赋值运算符:+=,-=,*=,/=publicclassDome1{publicstaticvoidmain(String[]args){inta=10;intb=20;a+=b;//相当于a=a+bSystem.out.println("a="+(a));intc=30;intd=15;......