永发信息网

C语言中数组名和指针的区别

答案:3  悬赏:60  手机版
解决时间 2021-02-11 03:15
C语言中数组名和指针的区别
最佳答案
数组在当作参数传递时,可以当作指针;当然,参数传递相当于赋值操作,所以用指针来接受数组的值也是可以的。

除此之外,指针就是指针,数组就是数组,一点也不一样,例如
1,数组名不能作为左值,即不能被赋值,也不能进行++ --操作
2,sizeof 数组名 和 sizeof 指针 不同
全部回答
数组名本质上就是个指针,也就是地址,但是它是一个常指针,是个固定值,而指针是是指针变量的简称,是个变量,这个变量存放的是地址值,它的值是可以改变的。例如: int *p; int a,b; p=&a;  //把变量a的地址赋值给指针p,那么指针p就指向了变量a的内存单元 p=&b;  //把变量b的地址赋值给指针p,那么指针p就指向了变量b的内存单元 int a[10];  //整型数组,数组名a本质上是一个地址,是首元素地址,它是一个固定值,不能对它进行赋值操作。
数组和指针的区别: 数组名确实表示指向数组首地址的指针,但这个指针很特别,它的值(指针的值指的是指针所指的地址)不能被改写,能改写的仅仅是其指向的内容,换句话说,数组名只能指向数组的首地址,如果有数组char a[];那么如果出现a = a+1;这是编译都通不过的错误。而对于一个普通的指针是可以的,再比如有数组char a[];那么再定义一个char *p = a;然后再用p = p+1是合法的,这表示让指针p指向&a[1]。 它们的第二个区别是:每当用到数组名这个指针的时候,系统都会传入数组的信息,而普通的指针只是一个4字节的整数,例如: char a[5]; char *p = a;//指针a和指针p都指向数组a的首地址 cout << sizeof (a) << "##" << sizeof (p) << endl;这时的运行结果是“5##4”
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
发动机拔开废气管以后突发响声是怎么回事
蜜蜂来我家里造窝有什么好事?
北京市朝阳区东四环中路37号原工美大厦违法建
大家好,我想学做山东呛面馒头,开个馒头店,
古镇烧烤在什么地方啊,我要过去处理事情
采气有什么用,怎样用意念采气,怎样观想
在众多的审批事项中如何区分行政许可事项和非
以前看过一部电影,不记得名字了,剧情大概是
步步高在什么地方啊,我要过去处理事情
x2十5x一1300=o
我下了NBA2K11 中文硬盘版 出现cn.dat Create
我刚买的苹果手机感觉屏幕有间隙发出响声,会
长短脚会影响身高吗
寻衅滋事造成死亡 自己不是主犯又是为成年 会
汪氏伤科医院地址有知道的么?有点事想过去
推荐资讯
通过封闭式环境学习日语好吗?
【中国邮政有奖明信片】李大伯购买中国邮政贺
柴油发动机尾气后处理 scr系统多少钱
易百分一站式课后托管中心(东关校区)地址有知
生馄饨要寄到福建要冰冻多久才可以寄
我买的SD卡在车载DVD上怎么不能播放视频?
哥伦比亚的手机网络制式?
自由篮球我玩的是敏捷型pf兔子杰克怎么扣篮上
记忆科技 DDR3 1333MHz 2GB 型号 7F7F7F7F43
形容无法从困境中走出来的词语
一般求婚戒指多少钱合适
小宋烧烤店怎么去啊,有知道地址的么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?