社区
C语言
帖子详情
简单:函数的参数列表问题(c)
vmape
2003-09-12 09:46:02
在C里面,我声明一个函数时这么写的:
void squeeze(int &s_1[],int &index_1)
然后程序报错?!s_1[5000]是用来存放字符的,我应该怎么写才对?谢谢了!
...全文
37
15
打赏
收藏
简单:函数的参数列表问题(c)
在C里面,我声明一个函数时这么写的: void squeeze(int &s_1[],int &index_1) 然后程序报错?!s_1[5000]是用来存放字符的,我应该怎么写才对?谢谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
不能声明引用的数组
C语言中的回调
函数
实例
在C语言中一般用typedef来为回调
函数
定义别名(参数名)。 别名通过宏定义typedef来实现,不是
简单
的宏替换。可以用作同时声明指针型的多个对象。 比如: 代码如下:char *pa,pb;//pa是一个char型指针,但pb是一个char型字符。我们可以这样来实现typedef char* PCHAR;PCHAR pa,pb;//pa和pb都是char型指针先看一个回调
函数
的例子: 代码如下:#include
//方法指针的格式为:int (*ptr)(char *p) 即:返回值(指针名)(
参数列表
)typedef int (*CallBackFun)(char *
C语言中数组作为
函数
的参数以及返回值的使用
简单
入门
函数
通过数组作为参数 如果想通过一个一维数组作为
函数
的参数,就必须声明
函数
形式参数,使用以下三种方式与所有三个声明方法之一产生类似的结果,因为每一种方式告诉编译器,一个整数指针将会要被接收。类似的方式,可以使用多维数组形式参数。 方式-1 形式参数为指针如下。在下一章将学习什么是指针。 void myFunction(int *param) { . . . } 方式-2 如下形式数组参数的大小: void myFunction(int param[10]) { . . . } 方式-3 如下形式数组参数作为可变大小: void myFunction(int param[]) { . . . }
简单
比较C语言中的execl()
函数
与execlp()
函数
C语言execl()
函数
:执行文件
函数
头文件: #include 定义
函数
: int execl(const char * path, const char * arg, ...);
函数
说明:execl()用来执行参数path 字符串所代表的文件路径, 接下来的参数代表执行该文件时传递过去的argv(0), argv[1], …, 最后一个参数必须用空指针(NULL)作结束. 返回值:如果执行成功则
函数
不会返回, 执行失败则直接返回-1, 失败原因存于errno 中. 范例 #include main() { execl("/bi
简单
对比C语言中的fputs()
函数
和fputc()
函数
C语言fputc()
函数
:写文件
函数
(将一指定字符写入文件流中) 头文件: #include
定义
函数
: int fputc(int c, FILE * stream);
函数
说明:fputc 会将参数c 转为unsigned char 后写入参数stream 指定的文件中. 返回值:fputc()会返回写入成功的字符, 即参数c. 若返回EOF 则代表写入失败. 范例 #include
main() { FILE * fp; char a[26] = abcdefghijklmnopqrstuvwxyz; int i;
c语言回调
函数
结构体参数传递,回顾向 :
函数
指针 & 回调
函数
& 面向对象风格的C语言...
面试的时候发现这个地方掌握的不够好,所以单独复习下,顺便写一篇博客。这篇文章的所有代码都是用C实现的,这是由于C没有面向对象的特性,所以我希望用
函数
指针把C的结构体弄得有一点面向对象的感觉。先介绍
函数
指针、回调
函数
,然后用C结合回调
函数
实现一个有面向对象风格的链表
函数
指针:
函数
指针,就是指向
函数
的指针基本的
函数
指针(无参数无返回值)//
函数
指针voidfun(){printf("fun()\...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章