| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1585 人关注过本帖
标题:初识指针,编译之后的warning怎么回事?
只看楼主 加入收藏
落翼天玑乱
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2016-3-7
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
初识指针,编译之后的warning怎么回事?
#include <stdio.h>

int swap(int a[]);

    int main()
    {
        int a[]={0,2,4,6,8,10};
        int t=sizeof(a)/sizeof(a[0]);
        printf("sizeof(a)/sizeof(a[0])=%d;\n a[0]=%d,a[%d]=%d;\n\n",sizeof(a)/sizeof(a[0]),a[0],t-1,a[t-1]);
        swap(&a);
           printf("after swaping...\n\nsizeof(a)/sizeof(a[0])=%d;\n a[0]=%d,a[%d]=%d;\n\n",sizeof(a)/sizeof(a[0]),a[0],t-1,a[t-1]);
           
           
        system("pause");
        return 0;
        
    }
   
int swap(int a[])
{
    int t;
   
    t=a[0];
    a[0]=a[5];
    a[5]=t;
}


图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: warning include return system 
2016-04-13 18:41
alice_usnet
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:370
专家分:2020
注 册:2016-3-7
收藏
得分:20 
swap(a);  /*不要取地址符*/

未佩好剑,转身便已是江湖
2016-04-13 18:47
落翼天玑乱
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2016-3-7
收藏
得分:0 
额。。。O(∩_∩)O谢谢!!!

[此贴子已经被作者于2016-4-13 19:22编辑过]

2016-04-13 19:16
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
数组名和对数组名取地址的联系和区别:--百度搜的
地址值是一样,在内存中位置也一样,但是意思不一样。数组名代表数组中第一个元素的地址,数组名取地址代表整个数组的地址。如果对前者加1则是数组中第二个元素的地址,如果对后者加1则是整个数组之后位置的地址。
下面这个更详细点:可以参考下:
一个是首地址(第一个元素的地址)。
一个是数组地址,类型不同,值相同。

一维数组,取地址,得到一维数组指针。
指针长度(指针加一后,移动的距离)是整个数组长度。

一维数组,数组名做值参以及参与运算,
甚至单独出现,代表数组第一个元素的地址---首地址 ,是一级指针。
指针长度(指针加一后,移动的距离)是数组的一个元素的长度。


二维数组,取地址,得到二维数组指针。
指针长度(指针加一后,移动的距离)是二维数组的长度。

二维数组,数组名做值参以及参与运算,甚至单独出现,代表数组第一个元素的地址---第一个一维数组元素的地址 ,是一维数组指针。
指针长度(指针加一后,移动的距离)是一维数组的长度。

[此贴子已经被作者于2016-4-14 11:17编辑过]

2016-04-14 11:14
快速回复:初识指针,编译之后的warning怎么回事?
数据加载中...
 
   



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

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