数组中a与&a的区别

[C/C++]数组与指针——a,a[0],&a,&a[0]区别小结 1.a,a[0],&a,&a[0] 通过在VS上实验,以下是关于C语言中数组与指针的关系——a,a[0],&a,&a[0]之间的区别小小的总结 对于二维数组a[3][5] a         int(*)[5]类型      ——即指向的是a[0] a[0]     int *类型           ——即指向的是a[0][0] &a       int(*)[3][5]类型 阅读详情

代码

int main()
{
    int a[5]={1,2,3,4,5}; 
    int *ptr=(int *)(&a+1); 
    printf("%d,%d",*(a+1),*(ptr-1)); 
    return 0 ;
}

结果:

这里写图片描述


分析

(a+1)我们都知道,(a+1)=&a[1] , *(a+1) = a[1] ,这个1代表的是sizeof(int)

但是(&a+1)中的1代表的是sizeof(a)

int main()
{
    int a[5]={1,2,3,4,5}; 
    int *ptr=(int *)(&a+1); 

    printf("sizeof(a) =  %d\n",sizeof(a));
    printf("sizeof(&a) = %d\n",sizeof(&a));
    printf("\n\n");

    //输出地址值,a与&a的值是一样的,但含义不同
    printf("&a = %d\n",&a);
    printf("&a+1 = %d\n",(&a+1)) ;
    printf("\n\n");

    printf("a = %d\n",a);
    printf("a+1 = %d \n",a+1);
    printf("\n\n");

    printf("%d,%d",*(a+1),*(ptr-1)); 

  return 0 ;
}

这里写图片描述

cs231n作业 assignment 1 q1 q2 q3 请先看课程作业地址。有两种做作业的方法,一种是在google Colab上做 (需魔法),另一种就是下载到本地,但是我懒得在本地配置环境,太麻烦了,还得修改一些基础代码,我就直接在google colab上做了google colab 配置环境只需要跟着教程走就好了最后还有一题解答题懒得做的,这个题目做的没啥意思。让我们用简单写法来实现softmax的loss函数与梯度计算。 阅读详情

相关推荐

深入Android构建系统:一次修改ro.vendor.build.fingerprint失败的排查与解决记录

本文深入探讨了Android构建系统中修改ro.vendor.build.fingerprint的完整解决方案。通过分析vendor分区的特殊地位和构建指纹的生成路径,提供了三种实战修改方法,并揭示了指纹修改可能遇到的陷阱与对策,帮助开发者彻底解决这一常见问题。

weixin_30621711的博客 139

数组里a和&a的区别

#include int main(void) {  int a[5]={1,2,3,4,5};  int *ptr=(int *)(&a+1);                      //&a代表整个数组的地址,+1应该加上sizeof(a)的长度,所以ptr指向a[5]位置处。  printf("%d %d\n",*(a+1),*(ptr-1));   //a代表数组首元素的地址

rongwenbin的专栏 1059

鸿蒙手机卸载内置应用 adb连接

**傻瓜式删除鸿蒙系统内置应用,自己亲测有效。**

JJDXBT的博客 3万+

对数组名取地址&a和 数组首地址a

#include <iostream> using namespace std; int a[5] = {1,2,3,4,5}; int main() { cout<<a<<" "<<&amp;a<<endl; cout<<a+1<<" "<<&amp;a + 1...

weixin_30786617的博客 148

电磁流量计模拟前端电路设计与优化

模拟前端电路(AFE)是传感器信号处理的核心环节,通过放大、滤波和模数转换实现信号调理。其设计需重点考虑放大器共模抑制比(CMRR)和ADC分辨率等关键参数,在电磁流量计等工业测量应用中,AD8220仪表放大器与AD7172-2 Σ-Δ型ADC的组合能有效简化传统多级架构。现代过采样技术结合数字滤波可替代模拟滤波器,显著提升系统集成度与测量精度,这种设计方法同样适用于压力传感、生物电信号采集等需要高精度信号调理的场景。

weixin_42602241的博客 615

从零复刻平衡小车(基于STM32F1)

平衡小车(基于STM32F1)

Legendyyy的博客 5038

a与&a的区别与联系

如果。

weixin_42492218的博客 4773

NMOS管和PMOS管做开关控制电路

NMOS管和PMOS管做开关控制电路

while(1) 3万+

a和&a有什么区别?

a和&amp;a有什么区别? 假设有这么一个数组int a[10]和 int (*p)[10] = &amp;a 用这两个例子来说明a和&amp;a的区别 1.a是数组名,它是数组首元素的地址, +1表示的是地址值加上一个int类型的字节大小,如果a的值是0x00000001,加1操作后变为0x00000005, 即 *(a + 1)= a[1] &amp;a是数组的指针,其类型就是int (*)[10] (就是数组指针),其加上1时,系统会认为数组首地址加上整个数组的大小(10个int型变量),值为数组

weixin_43595755的博客 2770

ROS水下仿真神器uuv_simulator:从零搭建水下机器人测试环境(附Gazebo配置全流程)

本文详细介绍了如何使用ROS和uuv_simulator从零搭建水下机器人仿真测试环境,包括Gazebo配置全流程。通过系统环境准备、水下世界构建、机器人模型定制开发等步骤,帮助开发者在虚拟海洋环境中高效验证算法,大幅降低研发成本。特别适合水下机器人研发人员参考。

ujm5678901的博客 261

【WRF数据准备】海温(SST)数据替换

【WRF数据准备】海温(SST)数据替换

WW、forever的博客 1117

a与&a的区别

&a和a的区别 当我们定义一个数组a时,编译器根据指定的元素个数和元素的类型分配确定大小(元素类型大小*元素个数)的一块内存,并把这块内存的名字命名为a。名字a一旦与这块内存匹配就不能改变。a[0],a[1]等为a的元素,但并非元素的名字。数组的每一个元素都是没有名字的。 这里&a[0]和&a到底有什么区别呢?a[0]是一个元素,a是整个数组,虽然&a[0]与&a的值一样,但其意义不一样。

chf_1的博客 2万+

rv1126如何切换720p和1080p

切换720p和1080p可以使用modetest,但是需要将这两种模式都添加到connector中去 添加一个新的mode到connector中去,其实内核中已经有相关接口了,需要做一些小改动。 1.不采用设备树的方式去配置,将720p和1080p的timing参数配置放在数组中。 2.这里的printer和设备树中的.compatible = "printer"一致。 3.将其添加到connector中去 static int panel_simple_get_fixed_modes(struct

weixin_42097108的博客 863

数组名a和&a的区别

  这里我们先看看数组名代表的是什么,这个概念可能大家有所误解,认为数组名代表的就是数组的地址,当然,数组名代表的是一个地址,但是关键是,通过这个地址,我们关注的是它能取得多大空间的数据的值,例如对于一个char 类型的地址,我们能够取得一个字节的值,对于一个int型的地址,我们能够取得4个字节的值。     这里我们以整形数组为讲解:int  a[4];    a是一个地址,我们知道a其实本来的面目应该是:a+0,只不过这个0我们就省了,*(a+0)是什么呢,这个代表的就是取得第一个元素的内容,也就是

www 关注互联网最新技术 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

c语言程序中a表示什么区别,C语言数组a和&a的区别讲解

C语言数组a和&amp;a的区别讲解面试经典题目#include "stdio.h"int main(){int a[5] = { 1,2,3,4,5 };int *ptr = (int *)(&amp;a + 1);printf("%d,%d", *(a + 1), *(ptr - 1));/*getchar是用VS编写方便查看输出*/getchar();return 0;}请思考一下上面的输出...

weixin_29408063的博客 3926

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

从一维数组到二维数据,解析数组名a, &a[0], &a 的区别与联系

对于一个一维数组,如下: int a[3] = {1,2,3}; a,&amp;a[0],&amp;a分别表示什么? printf("a = %x\n", a); printf("&amp;a[0] = %x\n", &amp;a[0]); printf("&amp;a = %x\n", &amp;a); 结果如下: 不难发现,其实它们的值都相同,难道它们就真的没有区别?然而并不是 int a[3] = { 1, 2, 3 }; printf("a = %x\n", a); print

when_20的博客 1039

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

数组a[],a和&a的区别

a:是数组的首地址即&a[0] &a:以整个数组为单位取其地址 a+1是a+sizeof(a[0]) &a+1是a+sizeof(a)   实例讲解: #include #include using namespace std; void main() {

434

a和&a的区别以及数组和指针的用法

a和&a的区别: #include int main() { int a[5] = {1,2,3,4,5}; int *ptr = (int *)(&a + 1); printf("%d %d",*(a + 1),*(ptr - 1)); system("pause"); return 0; } 结果如下: a表示的是数组首元素的首地址,而a+

小葱的博客 917

数组a[]中&a和a的区别

前提:a和&a的值是一样的,但是意义有所区别,a指的是a[0]的地址,&a指的是数组a的地址(“数组名”代表数组第一个元素的地址,“&数组名”代表的是整个数组的地址)。从而导致a+1和&a+1有了本质的差异。 a+1 = a[0]的地址+sizeof(int);(在第一个元素的地址上便宜一个数组元素的大小,即下一个元素,a[1]的地址。) &a+1 = 数组a的地址+sizeof(a);(在数组的地址上偏移一个数组的大小,此时sizeof(a)中的a是一个数组,不是一个指针,计算出来是一个数组的大小,不是指

我逍遥的博客 5123

数组中a和&a的区别

数组里a和&a的区别 #include int main(void) {  int a[5]={1,2,3,4,5};  int *ptr=(int *)(&a+1);   //&a代表整个数组的地址,+1应该加上sizeof(a)的长度,所以ptr指向a[5]位置处。  printf("%d %d\n",*(a+1),*(ptr-1));//a代表数组首元素的地址,+1应该加上s

u013756405的专栏 550

数组名a和数组名取地址&a的区别

对于数组a[3],a,&a,a+1,&a+1有什么区别?

qq_39478139的博客 454

数组a+1和&a+1的区别

数组 a+1 和 &amp;amp;a+1 的区别 先来看一段代码: #include &amp;lt;stdio.h&amp;gt; int main() { int a[5] = {1,2,3,4,5}; printf("a = %p\n", a); // I printf("&amp;amp;a = %p\n", &amp;amp;a); // II ...

一叶知秋的博客 3483

数组a[]的数组名a和对数组名取地址&a的区别

二者区别 如:对于数组int a[10]; a: 数组名a是指数组首元素的地址(以数组中的一个元素大小为单位) &amp;a: 数组名取地址&amp;a是指整个数组的首地址(以整个数组大小为单位) #include <iostream> using namespace std; int main() { int a[10] = { 0,1,2,3,4,5,6,7,8,9 }; ...

weixin_41926709的博客 988

数组中a和&a 的区别?

数组中a和&a 的区别?

魏波 949

指针 与 数组 以及 a 与 &a的区别

指针 与数组 并没有什么关系, 指针就是指针,指针变量在32位系统下,永远占4个byte,其值为某一个内存的地址,指针可以指向任何地方,但是不是任何地方你都能通过这个指针变量访问到; 数组就是数组,其大小与元素的类型和个数有关,定义数组时必须指定其元素的类型和个数,数组可以存储任何类型的数据,但是不能存放函数;; char *p = "abcdef"; // ...

188
上一篇: 混合颜料
下一篇: const关键字
elimuzi
博客等级 码龄10年 56粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值