a[]为数组,为什么a和&a值一样
今天看到一本书说
a为数组首元素的首地址
&a为数组的首地址
为什么在编译器中两个值一样?
另1:
int a[5];
sizeof(&a)在VC6上输出为20,这是编译器错误吗?
另2:书上说:
如果文件1中定义 char a[] = "abc";
文件2中定义 extern char *a;
然后文件2中a指向的内存区域就存放了97("a"),然后用97作为数组地址去查找就出错.
而如果文件1中定义 char *a = "abc";
文件2中定义 extern char a[];
然后文件2中用数组a[]访问内容时,里面的内容为指针a中保存的"abc"的地址(如0x0000ff00),就会出错.
这个怎么理解?
我用char a[] = "abc";
char* p = a;
输出完全没问题啊!
用Watch窗口看了a的值跟p是一样的,里面都是保存了地址(如0x0000ff00)?
a为数组首元素的首地址
&a为数组的首地址
为什么在编译器中两个值一样?
另1:
int a[5];
sizeof(&a)在VC6上输出为20,这是编译器错误吗?
另2:书上说:
如果文件1中定义 char a[] = "abc";
文件2中定义 extern char *a;
然后文件2中a指向的内存区域就存放了97("a"),然后用97作为数组地址去查找就出错.
而如果文件1中定义 char *a = "abc";
文件2中定义 extern char a[];
然后文件2中用数组a[]访问内容时,里面的内容为指针a中保存的"abc"的地址(如0x0000ff00),就会出错.
这个怎么理解?
我用char a[] = "abc";
char* p = a;
输出完全没问题啊!
用Watch窗口看了a的值跟p是一样的,里面都是保存了地址(如0x0000ff00)?
...全文
相关推荐
C语言数组a和&a的区别讲解
今天小编就为大家分享一篇关于C语言数组a和&a的区别讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
【C++ 数学】1330. 翻转子数组得到最大的数组值|2481
给你一个整数数组 nums 。「数组值」定义为所有满足 0
数组名a和&a的区别
这里我们先看看数组名代表的是什么,这个概念可能大家有所误解,认为数组名代表的就是数组的地址,当然,数组名代表的是一个地址,但是关键是,通过这个地址,我们关注的是它能取得多大空间的数据的值,例如对于一个char 类型的地址,我们能够取得一个字节的值,对于一个int型的地址,我们能够取得4个字节的值。 这里我们以整形数组为讲解:int a[4];
a是一个具有4个整型变量的数组的名字,而&a是数组的首地址
a是一个具有4个整型变量的数组的名字,具体地说是这种数组的首元素的首地址,而&a是数组的首地址
全志A31&A31S固件DIY工具
使用全志A31和A31s主控的平板电脑,可使用该工具DIY固件,可编辑厂商信息,替换开机画面,编辑系统属性信息。


