社区
C语言
帖子详情
怎么传递?
afeisky
2003-02-21 05:23:40
#include <string.h>
#include <malloc.h>
main()
{
void fun();
char *p[200];
fun();
}
void fun(char *p???)
{
for (i=0;i<200;i++) p[i]=0;
}
怎样把*p[200]传到fun中,使得fun函数中能用*p[200];
...全文
36
15
打赏
收藏
怎么传递?
#include #include main() { void fun(); char *p[200]; fun(); } void fun(char *p???) { for (i=0;i<200;i++) p[i]=0; } 怎样把*p[200]传到fun中,使得fun函数中能用*p[200];
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nocool
2003-02-25
打赏
举报
回复
楼上风筝说的对,sizeof(p)已经是指针大小的200倍了,不应该乘以200了。
xdspower 也说出了你的错误
xdspower
2003-02-24
打赏
举报
回复
for (i=0;i<200;i++) if (*(p+i)==NULL) printf(" =%d ",i);
afeisky
2003-02-24
打赏
举报
回复
就是用了memset后。
for (i=0;i<200;i++) if (p==NULL) printf(" =%d ",i); 打印不出%d来啊,发现没有一个[i]是NULL的。
nocool
2003-02-23
打赏
举报
回复
你说的“但不行"是什么意思呀?
wshcdr
2003-02-22
打赏
举报
回复
prf8(风筝)的话有问题?
sizeof(p)的值只是一个指针的长度
当然要乘以200的
prf8
2003-02-22
打赏
举报
回复
sizeof(p))在这里的值,已经是你的200了,不用再加上乘200;
prf8
2003-02-22
打赏
举报
回复
char *p[20];
int main()
{
void fun();
for(int i=0; i<20; i++)
{
char *ch = (char *)malloc(sizeof(char));
*ch = 'a' + i;
p[i] = ch;
}
fun();
}
void fun()
{
for (int i=0;i<20;i++)
//p[i]=0;
printf("%s\n",p[i]);
}
afeisky
2003-02-22
打赏
举报
回复
不好意思:我用了memset(p,0,200*sizeof(p));但不行啊。
用的是TC,不是c++;
#include <stdio.h>
void main()
{
char *p[200]; int i=0;
memset(p,NULL,200*sizeof(p));
for (i=0;i<200;i++) if (p==NULL) printf(" =%d ",i);
}
nocool
2003-02-22
打赏
举报
回复
afeisky 不好意思,我从cwanter那里直接拷的后半部分,没有仔细看,那样写是不对的,不可能直接将整个数组清零,除非用memset设零。
memset(p,0,200*sizeof(p));
至于数组参数传递,你可以参考c++ primer中的讲解,也可以采用vector。
sjd163
2003-02-22
打赏
举报
回复
不用传递将
char *p[200];
作为全局变量不就那里都可用了。
afeisky
2003-02-22
打赏
举报
回复
char *p[200]={0};
是把p[i]都初始化成NULL了吧。是吧。
nocool
2003-02-21
打赏
举报
回复
直接声明函数类型为
void fun(char *p[])
参数是指向char*数组的指针,这样就可以穿进去了。
调用时直接用 func(p);
void func(char *p[])
{
p[0]=0;
}
void main()
{
char *p[200]={0};
func(p);
}
zalyer
2003-02-21
打赏
举报
回复
在主函数中定义
void fun(char *p[200],....);
使用
fun(p,...);
fun函数中
void fun(char *p[200],....);
{......
}
cwanter
2003-02-21
打赏
举报
回复
void func(char *p[200])
{
p[0]=0;
}
void main()
{
char *p[200]={0};
func(p);
}
liu_feng_fly
2003-02-21
打赏
举报
回复
使用vector
python中函数
传递
参数是值
传递
还是引用
传递
?
python中函数
传递
参数是值
传递
还是引用
传递
? 严格来说,应该都不是;正确的叫法应该是传对象,或者说传对象的引用。 Python 函数中,参数的
传递
本质上是一种赋值操作,而赋值操作是一种名字到对象的绑定过程。函数参数在
传递
的过程中将整个对象传入,对可变对象的修改在函数外部以及内部都可见,调用者和被调用者之间共享这个对象,而对于不可变对象,由于并不能真正被修改,因此,修改往往通过生成一个新对象然后...
为什么Java中只有值
传递
?
为什么Java中只有值
传递
?
Java是值
传递
还是引用
传递
?
类型
传递
方式是否影响原始变量是否能改变引用指向基本类型值
传递
❌N/A引用类型引用地址的值✅ 可改内容❌ 不能改引用本身Java 只有值
传递
,对于引用类型,
传递
的是对象引用的副本值,可以通过引用修改对象的内容,但不能改变原始引用的绑定关系。需要我帮你画一张引用
传递
/值
传递
对比图,或者写一套行为验证用例方便测试?
什么是值
传递
和引用
传递
?(总结及代码文字解释????)
总结: 值
传递
是对基本型变量而言的,
传递
的是该变量的一个副本,改变副本不影响原变量. 引用
传递
一般是对于对象型变量而言的,
传递
的是该对象地址的一个副本, 并不是原对象本身 。 一般认为,java内的
传递
都是值
传递
. java中实例对象的
传递
是引用
传递
。 (关注Java刘老师,共同学习) -------解释如下: 值
传递
:指的是在方法调用时,
传递
的是参数是按值的拷贝
传递
。 特点:
传递
的是值的拷...
Java参数
传递
终极揭秘:值
传递
还是引用
传递
?看完这篇彻底懂了!
Java参数
传递
遵循值
传递
原则,对基本类型
传递
值的副本,对引用类型
传递
对象引用地址的副本。方法内可通过副本修改对象内容(如属性值),但无法改变原始引用的指向(如new操作或null赋值)。常见误解如String的不可变性、数组/集合的修改等,均源于对"引用副本
传递
"的误读。关键结论: 对象内容可修改(通过副本操作原对象) 引用指向不可变(副本重定向不影响原引用) 设计初衷:保障安全性(防意外篡改)与一致性(统一
传递
规则)。面试回答需区分基本类型与引用类型的副本
传递
本质。
C语言
70,037
社区成员
243,243
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章