c语言 指针

[复制链接]
查看11 | 回复3 | 2010-6-27 07:55:49 | 显示全部楼层 |阅读模式
#include "stdio.h"
void swap1(int c[ ])
{int t;

t=c[0];c[0]=c[1]; c[1]=t;
}
void swap2(int c0, int c1)
{int t;

t=c0;c0=c1;c1=t;
}
main( )
{ int a[2]={3,5},b[2]={3,5};

swap1(a); swap2(b[0],b[1]);

printf("%d %d %d %d\n",a[0],a[1],b[0],b[1]);
}

A.5 3 5 3 B.5 3 3 5 C.3 5 3 5
D.3 5 5 3

回复

使用道具 举报

千问 | 2010-6-27 07:55:49 | 显示全部楼层
答案是5 3 3 5 选B 给你分析一下:数组名(例如a)其实就是一个指针,它指向数组的首地址。加上下标(例如a[0]相当与*(a+0))就是元素了。swap1(a);传送的形参是a数组的地址,则函数中所用的数组c与数组a是同一数组。swap2(b[0],b[1]);传送的形参是元素,是把两个元素b[0] b[1]的值分别赋给c0 c1。你想一想c0 c1的值交换和b[0] b[1]有什么关系。希望对你有所帮助!
回复

使用道具 举报

千问 | 2010-6-27 07:55:49 | 显示全部楼层
swap1(a)结果a[2] = {5,3}swap2(b[0],b[1])结果b[2] = {5,3}结果 5 3 5 3 A
回复

使用道具 举报

千问 | 2010-6-27 07:55:49 | 显示全部楼层
5 3 3 5 选B
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行