| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1715 人关注过本帖
标题:使用const保护二维数组内容,出现警告
取消只看楼主 加入收藏
gleerat
Rank: 2
等 级:论坛游民
帖 子:39
专家分:20
注 册:2009-12-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
使用const保护二维数组内容,出现警告
在《C Primer Plus》第十章(数组和指针)中,关于数据保护,提到使用const保护数据。下面是我自己的练习:
程序代码:
#include <stdio.h>

void show(const int array[][10]);    //使用const保护数组内容,出现警告;取消const之后,警告消失
void display(const int *);

int main(void)
{
    int array[10][10], integer[100];
    int i, j, count=0, index;

    for(i=0; i<10; i++)
        for(j=0; j<10; j++, count++){
            array[i][j] = count+1;
            integer[count] = count+1;
        }
    show(array);
    display(integer);

    return 0;
}

void show(const int array[][10])    //使用const保护数组内容,出现警告;取消const之后,警告消失
{
    int i, j;

    for(i=0; i<10; i++){
        for(j=0; j<10; j++)
            printf("%3d  ", array[i][j]);
        putchar('\n');
    }
}

void display(const int integer[])
{
    int index;

    for(index=0; index<100; index++)
        printf("%3d  ", integer[index]);
    putchar('\n');
}

array.c: In function 'main':
array.c:16: warning: passing argument 1 of 'show' from incompatible pointer type
array.c:3: note: expected 'const int (*)[10]' but argument is of type 'int (*)[10]'
保护一维数组内容不会有任何问题,但是保护二维数组内容则出现警告,对二位数组取消内容保护,则警告消失。
两种使用方法的差异在哪里?
为什么?
如何保护二维(多维)数组的内容?
谢谢。
2013-01-05 17:30
gleerat
Rank: 2
等 级:论坛游民
帖 子:39
专家分:20
注 册:2009-12-23
收藏
得分:0 
回复 2楼 yuccn
可是我之前见到的对程序员的建议是:
不要忽略任何警告

明察、慎思、笃行
2013-01-06 10:25
gleerat
Rank: 2
等 级:论坛游民
帖 子:39
专家分:20
注 册:2009-12-23
收藏
得分:0 
回复 3楼 zklhp
因为之前我见到对于学习编程的建议是,对于note、warning之类的任何提示都要注意,尽量消除,所以我才特别注意编译过程中的提示信息。

明察、慎思、笃行
2013-01-06 10:33
gleerat
Rank: 2
等 级:论坛游民
帖 子:39
专家分:20
注 册:2009-12-23
收藏
得分:0 
回复 4楼 lz1091914999
还是比较倾向于使用第二种方式传递参数。
谢谢。


[ 本帖最后由 gleerat 于 2013-1-6 11:15 编辑 ]

明察、慎思、笃行
2013-01-06 10:42
gleerat
Rank: 2
等 级:论坛游民
帖 子:39
专家分:20
注 册:2009-12-23
收藏
得分:0 
回复 11楼 lz1091914999
谢谢了。

明察、慎思、笃行
2013-01-07 17:33
快速回复:使用const保护二维数组内容,出现警告
数据加载中...
 
   



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

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