| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2567 人关注过本帖
标题:数组名再用取地址运算符赋值到指针中的问题
只看楼主 加入收藏
zt815082858
Rank: 1
等 级:新手上路
帖 子:56
专家分:3
注 册:2016-10-30
结帖率:61.54%
收藏
已结贴  问题点数:5 回复次数:6 
数组名再用取地址运算符赋值到指针中的问题
代码
# include<stdio.h>
int main()
{
    char *p;
    char a[]={"This is a c program"};
    p=&a;
    printf("%s\n",a);
    return 0;
}
严重性    代码    说明    项目    文件       禁止显示状态
错误(活动)        不能将 "char (*)[20]" 类型的值分配到 "char *" 类型的实体    函数调用.c    d:\Debug\函数调用.c\源.cpp    6   
可是改成  p=a;就不会出错,请问是为什么?
搜索更多相关主题的帖子: return 项目 
2016-12-30 16:27
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:2 
数组名本来就是地址~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-30 16:30
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
收藏
得分:2 
p=&a[0];

Code is my life.
2016-12-30 16:34
zt815082858
Rank: 1
等 级:新手上路
帖 子:56
专家分:3
注 册:2016-10-30
收藏
得分:0 
哦,,,,我被指针引用多维数组的行指针与列指针搞糊涂了。。。。
2016-12-30 16:40
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
收藏
得分:0 
回复 4楼 zt815082858
指针与多维数组书中一般写在很前面,其中涉及到指针的指针。
先把间接访问运算符*,取地址符&的含义和用法弄明白,理解地址的概念,后面再学指针就清楚多了。。

Code is my life.
2016-12-30 16:47
dongdon923
Rank: 2
等 级:论坛游民
威 望:1
帖 子:17
专家分:58
注 册:2016-12-2
收藏
得分:2 
指针p 赋值时 p=a=&a[0] .
它们三个都代表数组首地址 即a[0]的地址。
p前面加*。就是开始取值。 *p+i=a[i]的实际值。
遍历数组值就需要用*(p++)
2017-01-01 10:13
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
收藏
得分:0 
回复 6楼 dongdon923
*(p+i)=a[i]的实际值
*p++ 不用加括号,后置++的优先级高于*

Code is my life.
2017-01-01 20:06
快速回复:数组名再用取地址运算符赋值到指针中的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018827 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved