| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2469 人关注过本帖
标题:数组名称既然代表数组的内存地址,为什么在给数组用scanf赋值的时候加“&” ...
取消只看楼主 加入收藏
oszc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:111
专家分:154
注 册:2011-4-15
结帖率:100%
收藏
 问题点数:0 回复次数:2 
数组名称既然代表数组的内存地址,为什么在给数组用scanf赋值的时候加“&”
程序代码:
#include<stdio.h>

int main(void)
{
    int i=0;
    float monthlyTemperatures[12]={0};

    for (i=0;i<12;i++)
    {
        printf("Enter the integer: ");
        scanf("%f",&monthlyTemperatures[i]);
    }

    for (i=0;i<12;i++)
    {
        printf("%.2f\n",monthlyTemperatures[i]);
    }

    
        return 0;
}
    

P.S. 给字符串数组赋值时又不加,这两者似乎有矛盾。

[ 本帖最后由 oszc 于 2011-5-4 17:43 编辑 ]
搜索更多相关主题的帖子: 内存 color 
2011-05-04 17:34
oszc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:111
专家分:154
注 册:2011-4-15
收藏
得分:0 
十分感谢各位回答,尤其四楼五楼给我很大启示

现在的理解对于“数值型数组”代表物理内存的“初始”地址,编译器无法寻找到数组的“后续”地址
scanf("%f",&monthlyTemperatures[i]);
//修改成
scanf("%f",monthlyTemperatures);

编译通过,赋值总是在数组monthlyTemperatures[0]上。
原因也许没有办法区分每个数值,比如12345,可以代表一个整体,也可以代表分离的1、2、3、4、5,那干脆只要是数值类型编译器就认为是整体。

对于字符串型数组的话,可以非常简洁的认为每个字符代表数组的一个元素,在接收的时候按顺序即可排列成为一个字符串数组。

[ 本帖最后由 oszc 于 2011-5-4 19:08 编辑 ]
2011-05-04 19:05
oszc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:111
专家分:154
注 册:2011-4-15
收藏
得分:0 
楼上对于数值完美的答案,但是对于字符型数组怎么解释呢?感谢

[ 本帖最后由 oszc 于 2011-5-4 23:47 编辑 ]
2011-05-04 20:46
快速回复:数组名称既然代表数组的内存地址,为什么在给数组用scanf赋值的时候加 ...
数据加载中...
 
   



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

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