经典笔试题——a和&a有什么区别

简介: 请写出以下代码的打印结果: 1 #include 2 void main() 3 { int a[5]={1,2,3,4,5}; 4 int *ptr=(int*)(&a+1); 5 6 printf("%d,%d",*(a+1),*(ptr-1)); 7 } 输出结果为:2,5   至于为什么输出结果是5? 要时刻牢记这样的观点:数组名本身就是指针,再加上&,就变成了双指针,这里的双指针就是指二维数组,加1,就是数组整体加1行,ptr指向a的第6个元素。

请写出以下代码的打印结果:

1 #include<stdio.h>
2 void main()
3 { int a[5]={1,2,3,4,5};
4   int *ptr=(int*)(&a+1);
5 
6   printf("%d,%d",*(a+1),*(ptr-1));
7 }

输出结果为:2,5

 

至于为什么输出结果是5?

要时刻牢记这样的观点:数组名本身就是指针,再加上&,就变成了双指针,这里的双指针就是指二维数组,加1,就是数组整体加1行,ptr指向a的第6个元素。

img_e00999465d1c2c1b02df587a3ec9c13d.jpg
微信公众号: 猿人谷
如果您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】
如果您希望与我交流互动,欢迎关注微信公众号
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

目录
相关文章
|
2月前
|
JavaScript 前端开发 索引
经典面试题数组常用的方法
### 1.数组常用方法之 push()(==改变原数组,产生新数组==) - `push` 是用来在数组的末尾追加一个元素,返回添加以后的长度 ```javascript var arr = [1, 2, 3] // 使用 push 方法追加一个元素在末尾 arr.push(4) console.log(arr) // [1, 2, 3, 4] var res = arr.push(1,2,3,34); res//8 ``` ### 2.数组常用方法之 pop()(==改变原数组,产生新数组==) - `po
53 1
|
11月前
|
编译器 C语言 开发者
掌握指针和数组:经典笔试题攻略(万字详解)(上)
掌握指针和数组:经典笔试题攻略(万字详解)(上)
36 0
|
2月前
|
C++
栈和队列经典笔试题
栈和队列经典笔试题
|
11月前
|
程序员 C语言
初阶函数经典例题(2)
初阶函数经典例题(2)
|
12月前
|
C语言
【C语言】经典指针笔试题(深度解剖)(下)
【C语言】经典指针笔试题(深度解剖)(下)
48 0
|
2月前
|
存储 Java 编译器
经典指针笔试题你会了嘛
经典指针笔试题你会了嘛
69 0
|
11月前
|
存储 编译器 C语言
掌握指针和数组:经典笔试题攻略(万字详解)(下)
掌握指针和数组:经典笔试题攻略(万字详解)(下)
57 0
|
11月前
|
存储 C++
大厂经典指针笔试题
大厂经典指针笔试题
|
12月前
|
C语言
【C语言】经典指针笔试题(深度解剖)(上)
【C语言】经典指针笔试题(深度解剖)(上)
43 0
【经典笔试题2】
首先分析代码,a是数组名,是数组首元素地址,&a取到整个数组的地址,+1跳过了整个数组,a强转成int*类型,然后赋值给ptr,此时ptr指向的就是数组a后面的地址,如下图:

热门文章

最新文章

  • 1
    流量控制系统,用正则表达式提取汉字
    25
  • 2
    Redis09-----List类型,有序,元素可以重复,插入和删除快,查询速度一般,一般保存一些有顺序的数据,如朋友圈点赞列表,评论列表等,LPUSH user 1 2 3可以一个一个推
    26
  • 3
    Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
    25
  • 4
    Redis07命令-String类型字符串,不管是哪种格式,底层都是字节数组形式存储的,最大空间不超过512m,SET添加,MSET批量添加,INCRBY age 2可以,MSET,INCRSETEX
    27
  • 5
    S外部函数可以访问函数内部的变量的闭包-闭包最简单的用不了,闭包是内层函数+外层函数的变量,简称为函数套函数,外部函数可以访问函数内部的变量,存在函数套函数
    23
  • 6
    Redis06-Redis常用的命令,模糊的搜索查询往往会对服务器产生很大的压力,MSET k1 v1 k2 v2 k3 v3 添加,DEL是删除的意思,EXISTS age 可以用来查询是否有存在1
    30
  • 7
    Redis05数据结构介绍,数据结构介绍,官方网站中看到
    21
  • 8
    JS字符串数据类型转换,字符串如何转成变量,+号只要有一个是字符串,就会把另外一个转成字符串,- * / 都会把数据转成数字类型,数字型控制台是蓝色,字符型控制台是黑色,
    19
  • 9
    JS数组操作---删除,arr.pop()方法从数组中删除最后一个元素,并返回该元素的值,arr.shift() 删除第一个值,arr.splice()方法,删除指定元素,arr.splice,从第一
    19
  • 10
    定义好变量,${age}模版字符串,对象可以放null,检验数据类型console.log(typeof str)
    19