问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于数组首地址赋值给指针和数组指针的问题

发布网友 发布时间:2022-05-21 09:26

我来回答

5个回答

热心网友 时间:2023-10-22 06:24

从编译器的角度来讲,int *p定义了一个指向int型的指针p。而a本身已经是指向int型的指针了,对a做取值操作,返回的结果是int **类型的,造成类型不匹配,所以不能这样写:int *p = &a;

而int (*pa)[5]定义了一个指向5个元素的int数组的指针,而a只是数组的首地址,&a才是数组的指针,同样也是因为类型不匹配。

热心网友 时间:2023-10-22 06:25

权威答案:
1. a是数组的首地址,&a是不符合语法的,因为a是常数地址,它是没有地址的地址,
有的C++版本,可能把 &a直接处理成a了,所以,是一样的了;
2。 int (*pa)[5] , 定义的二维数组指针,相当于 int pa[ ][5];
而a是一维数组,所以,类型不一会报告出错;

热心网友 时间:2023-10-22 06:25

a代表的是数组首元素的首地址,即&a[0]的地址;
&a代表的是数组的首地址;
a+1代表的是a[1]的首地址;
&a+1是下一个数组的首地址;
再看int (*pa)[5]这个定义的意思是定义一个数组指针,(数组为匿名的包含5个元素的数组),指向的是整个数组,而非单个数组元素

不同的编译器未必是一样的处理,有些可能是警告,运行时也没问题(因为a和&a地址是相同的)
但有些编译器可能就直接报错,因为这么用确实是错的

热心网友 时间:2023-10-22 06:26

a本身就是指针了,你取它的地址,就是取指针的地址,那当然不对了。

热心网友 时间:2023-10-22 06:26

数组之间直接赋值是不容许的!可以使用字符串复制函数strcpy
lz的程序可以改为
#include
<string.h>
char
name[10];
void
aa(char
*p)
{strcpy(name,p);}
其实strcpy很不安全,尤其在lz的程序中。
“指针这方面的书籍”——建议看《c和指针》
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 Vivo7s和平精英低音质怎么改? 和平精英低音质伤耳朵吗? 和平精英为什么身法大佬都用低音质? 矩形螺纹的完怎表示可以举个列子吗 就是()里的p3 我不知道是什么意思 矩形螺纹公式怎么表示 指教矩形螺纹的画法,就螺纹没画了,详细点。 矩形螺纹怎样用简易图表示? 管螺纹怎么标注?还有怎么把管螺纹对上 一角的铜硬币价值是多少啊! 做脑部CT对身体有什么不良影响? 矩形螺纹的标注 矩形内螺纹如何标注 我的车载充气泵怎么用? 免洗发膜是等头发干了在用吗? 如何练英语写字,有没有字帖之类的东西 眼睛难受,别人推荐人工泪液海露,这个对眼睛好不好? 你好,我是一名高中生,觉得自己的英语字写的不好,可不可以帮我推荐比较基础的英语字帖呢?谢谢 眼干难受,想海淘买个玻璃酸钠滴眼液。海露滴眼液有人了解么? 怎样区分海露滴眼液是否是德国原装进口? 海露滴眼液可以医保吗? 求这款百度手机输入法皮肤 如何把数组的首地址保存在指针中 可不可以把一个字符串数组的首地址赋给一个指向字符的指针呢? 数组可以赋值给指针吗?(求高手) 例如: int num[10],*pn; pn=num; 把数组的的首地址赋给形参指针变量就可以在这个函数中随意访问该数组了吗 C语言,怎样把数组的首地址赋给另一个数组 为什么不能把二维数组名/行的首地址赋给指针? c语言int a[ ]=(1,2,3,4,5,6) *P=a,什么意思,*P=1? 怎么制作百度输入法的皮肤?我已经下载制作器了,最好发点素材哦 ~ p=a是什么意思?数组可以直接赋值给指针变量吗? 把数组首地址赋给结构体指针,结果二者地址相差64 C语言 把结构体数组的地址赋给指针 如何将数组赋给指针? 指针数组中 首地址已经赋值给指针了但输入后还要继续赋值 c语言地址与指针问题 C++问题,关于将数组地址赋给指针的问题。 在C中,在定义指针的时候同时赋值,比如int *p=a;(a是数组名)是吧数组的首地址赋给指针p,那么int *p[3]= 北京什刹海是怎样发展而来的? 清代的北京什刹海有哪些历史? 请推荐一下什刹海的游览路线,最好从哪里开始?