永发信息网

帮我看段C程序

答案:5  悬赏:40  手机版
解决时间 2021-04-20 08:46

#include <stdio.h>
void main()
{

int (*p)[4]={45,66,98,64};
for(int i=0;i<4;i++)
{
printf("%d ",(*p)[i]);

}
}

帮我看这个程序为什么不对?

解释下?

最佳答案

#include <stdio.h>
void main()
{


int (*p)[4]={45,66,98,64};
for(int i=0;i<4;i++)
{
printf("%d ",(*p)[i]);


}
}


(*p)[4]是建一个一级指针数组,其长度为4,


故对其初始化只能用相应的一级数据地址。



而对于


p=&a 数组名字不是首地址吗?


为什么还要加取地址符?


它不符合规范,数组的建立先是其头地址,后面接着a[0]~~~~~


故数组名我们实际上指的是头地址(指明了指针属性)


因此p=a就可以了


而p=&a有些软件可以运行,但不符合规范。


全部回答

你这是一个指针, 怎么能赋4个值呢?

(*p)[4]意思是一个指针p指向一个维度为4的一维数组, 是一个指针哦, 不是四个指针

(*p)[4]改为p[4]

应该改成这样

#include <stdio.h> int main() { int i; int a[4] = {45,66,98,64}; int *p[4]; for( i= 0; i <4; i++){ p[i]=&(a[i]); printf("%d ", *p[i]);} getchar(); }

int (*p)[4] 这个定义为指向数组的指针...额,怎么说呢.就是说p这个指针指向一个数组,而这个数组有4个元素

int a[4]={45,66,98,64};

int (*p)[4];

p=a; 这样的话应该没问题了...

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
谁能帮我猜出这个字迷啊
印度人为什么不爱穿袜子和棉鞋
我是雕刻家是属于那一个领域
口才不好.人又笨.我是不是没法活了?!
网站后台界面是怎么做出来的?是不是前端先做
保险准备金是什么意思,什么是IBNR(保险中的术
谷歌手机nexus4怎样更新系统
我想问小孩才7岁呀,能吃吗?
佳句赏析关于挽回爱情,挽回爱情的句子有哪些
摩托车的链条是太松易断还是太紧易断,一般在
小狗狗叫什么名字更可爱呢?
悲伤绝望过后剩下什么?
鹏程万里相反的词语
海盐南北湖 要钱吗
爱的最高境界是?
推荐资讯
紧急!谁能告诉我怎样才能彻底退出QQ校友?
B超检查胎儿四支不清这是为什么
胆的作用和功能是什么,人的胆主要起什么作用
这个文件夹是怎么回事 ?
三国演义第四十七回:军士引阚泽至,只见帐上
诺基亚有多少种型号
3ds max 8.0 简体中文版 激活码
非主流背影头像
现在若基亚N72N73各买多少钱?
爱和喜欢有什么不同
成都的大学会互相联谊吗
电脑重装系统的问题,求达人详解。在线等,急
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?