简单:函数的参数列表问题(c)

vmape 2003-09-12 09:46:02
在C里面,我声明一个函数时这么写的:
void squeeze(int &s_1[],int &index_1)

然后程序报错?!s_1[5000]是用来存放字符的,我应该怎么写才对?谢谢了!
...全文
36 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
robbie24 2003-09-13
  • 打赏
  • 举报
回复
参数为数组时,编译器一律给你传递(数组首元素)的首址.
没有什么好选择的,无论你愿不愿意.
况且在C中可以使用引用吗?
晨星 2003-09-13
  • 打赏
  • 举报
回复
C中因为没有引用,任何企图在函数内部修改实参的动作都需要传递指针,scanf也不例外。
晨星 2003-09-13
  • 打赏
  • 举报
回复
scanf中的是指针,不是引用。
你怎么总是糊里糊涂的,^_^
vmape 2003-09-13
  • 打赏
  • 举报
回复
我找到了解决问题的方法:大家看看对不对,编译确实通过了。

void squeeze(char s_1[],int index_1);

char s_1[5000];

把int 改成char就成了??!!!!!可是确实成了,就差这么一点。
我是先学的C++,我们学校要求学C,出了不少的练习题,我没有办法,总不能不做啊?^_^无奈啊。

C里面函数参数确实没有引用,但是在scanf里面出现过引用的啊。
晨星 2003-09-13
  • 打赏
  • 举报
回复
To:dragonlw(潜龙在渊)
你说的对,可ggg82()说的也对。因为“指针”一词本来就比较模糊,大多数时候,人们把它作为“指针变量”的同义词,但也有许多时候,人们把它作为“地址”的代名词。

就我个人而言,我倾向于明确的用“指针变量”或“地址”来分别表明自己的意思,而不用“指针”这种模棱两可的词。
bailingke 2003-09-13
  • 打赏
  • 举报
回复
C语言没有引用
dragonlw 2003-09-13
  • 打赏
  • 举报
回复
数组名就是指针??
不对吧,他们还是有区别的
数组名表示一个地址,但名字本身并不能想
指针那样的++,--的。就是不能随意的改变。呵呵
ggg82 2003-09-13
  • 打赏
  • 举报
回复
数组名就是指针,若在后加[],那不成了指针数组了,而原来是char(int)数组,当然不对了。
csdn5211 2003-09-13
  • 打赏
  • 举报
回复
难道搂主是先学c++后学c吗?
晨星 2003-09-13
  • 打赏
  • 举报
回复
void my_printf(int* array);

数组名是个地址,因此可以赋给指针形的形参。比如:
#include <iostream>
using namespace std;

void my_printf(int* array , int size);

void main()
{
int a[5] = {1 , 3 , 5 , 7 , 9};
my_printf(a , 5);
}

void my_printf(int* array , int size)
{
for(int i = 0 ; i < size ; i++)
cout << array[i] << " ";
cout << endl;
}
vmape 2003-09-13
  • 打赏
  • 举报
回复
我需要在squeeze()函数中操作数组,因此把数组传递给squeeze()函数啊,要不然我在main()里面输入的数组可以直接在squeeze()使用么?这么说吧,我要写一个简单的程序,是main()里面定义一个数组,要求输入5个数字,然后我自行定义一个my_print()函数,要求在my_print()函数中把数组打印出来,我应该怎么声明my_print()函数?我怎么把数组传递给my_print()函数啊?

是void my_print(int array)就可以了?还是要void my_print(int array[size])还是要加上引用void my_print(int &array)?我觉得不管怎么写编译器都报错啊?!我用的是TC2
yulongcn 2003-09-12
  • 打赏
  • 举报
回复
数组用指针传递就可以了
hpho 2003-09-12
  • 打赏
  • 举报
回复
typedef int S_1[5000];
void squeeze(S_1& s_1,int &index_1){}

int a[5000];
squeeze(a, a[0]);
晨星 2003-09-12
  • 打赏
  • 举报
回复
同意楼上。
不过我很奇怪,你引用数组干吗?
想修改数组中的元素,不需要引用也能半办到,而如果你企图修改数组的首地址本身,那恐怕引用也办不到。
ruanzheng13 2003-09-12
  • 打赏
  • 举报
回复
不能声明引用的数组

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧