c语言问题 c语言中自定义函数数看不懂

C语言 自定义函数返回数组的问题
我的图书馆
C语言 自定义函数返回数组的问题
C语言 自定义函数返回数组的问题
#include &stdio.h&
char* text( void );
int main( void )
&&& char* str = NULL;
&&& str = text();
&&& puts(str);
&&& getchar();
char* text( void )
&&&&& char p[] = "Hello, world!";
对于上述代码,为何无法输出“Hello, world!”?为何当把其中的p[]改为*p后就可以输出“Hello,
world!”了?
这里涉及到函数返回值、临时变量、局部自动变量、内存的问题,希望你能在答案中解释一下。
我从网上找过许多类似的问题,但是仍然似懂非懂,所以希望你能用自己的话回答。
问题补充&& 13:10
我定义数组charp[] = "Hello, world!";
那么此时的p(不带下标)也是一个指针,为什么无法将它的值返回给主调函数呢?
回答:1 人气:1 解决时间: 12:43
满意答案好评率:0%
char p[] = "Hello,
是表示定义一个 字符串数组,而且是text(
void )函数内的局部变量,
作用域只在text( void )函数内部,离开函数就无效了
char *p = "Hello, world!";
是表示定义了一个 字符串常量,作用域是全局的,
指针 p 则指向这个常量 "Hello, world!",所以可以返回 p
回答人的补充 &&
因为字符串数组 charp[] = "Hello, world!"; 是一个是text( void
)函数内的局部变量,
作用域只在text( void )函数内部,离开函数就无效了
你可以返回指针 p,
但p所指向的 "Hello, world!"字符串 是不能在外部访问的,
它是程序栈上的数据,但你可以用 malloc
等函数分配出来的则可以返回
TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&不能在一个函数的定义部分内定义新的函数。比如:
这种就是嵌套定义。
但是可以在函数定义体内部调用已定义的其他函数。
其他答案(共1个回答)
内部自定义函数
给你个例子
#include&stdio.h&
void main()
int max(int x,int y);
可以的,你可以用嵌套函数,在另一个函数中用它
for example,y=3xx就是自变量,y就是因变量,你把它想成一个加工机器,x就是原料,y就是产品,原料变了,出来的产品自然也会变。
Excel 函数即是预先定义,执行计算、分析等处理数据任务的特殊公式。以常用的求和函数SUM 为例,它的语法是“SUM(number1,number2,.......
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区21:30 提问
C语言函数问题求解答,求大神
输入2个整数,分别将其逆向输出,要求定义并调用函数fun(n),它的功能是返回n的逆向值?例如,fun(123)的返回值是321
函数出什么问题了,输出错了
int fun(int x);
int main(void)
int m1,m2;
printf("Input m1: ");
scanf("%d",&m1);
printf("Input m2: ");
scanf("%d",&m2);
printf("%d's reverse is:%d ",m1,fun(m1));
printf("%d's reverse is:%d ",m2,fun(m2));
return 0;}
int fun(int x)
int count,i,d,p,sum=0;
do{ x=x/10;
count++;} while (x!=0);
for (i=1;i&=i++){
sum=sum+p*pow(10,count-i);
do{ x=x/10;
count++;} while (x!=0);
for (i=1;i&=i++){
sum=sum+p*pow(10,count-i);
按赞数排序
int fun(int x)
int flg,i,sum=0;
do{ m=x%10;
sum = sum * 10 +
} while (x!=0);
if (flg ==1) {
sum = -sum;
一楼的下面的代码里应该用d而不是p
sum=sum+p*pow(10,count-i);
个人认为将数字先转成字符串,然后进行反转处理会简单很多。例如:字符串可以求长度
处理完后的字符串,再转成数字即可完成要求。
第一:count应赋初值为0,即count=0;第二:sum=sum+p*pow(10,count-i);应换为sum=sum+d*pow(10,count-i);第三:最后一行代码:
-应改为因为此时p已经为负数,不需要再加负号
int fun(int x)
int count=0,i,d,p,sum=0;
} while (x!=0);
for (i=1;i&=i++)
sum=sum+d*pow(10,count-i);
} while (x!=0);
for (i=1;i&=i++)
sum=sum+d*pow(10,count-i);
另外在scanf后要吸收回车符号,或者fflush
楼上写的已经答了你的问题,我在想如果是一个大数呢,用字符串处理不是更好?
其他相似问题欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 1071 人关注过本帖
标题:自定义函数格式和读取已定义好的函数
来 自:浙江
等 级:新手上路
结帖率:100%
&&已结贴√
&&问题点数:20&&回复次数:11&&&
自定义函数格式和读取已定义好的函数
RT,初学者...谁教下我,谢谢
搜索更多相关主题的帖子:
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
&&得分:10&
函数有格式嘛?&&函数只有类型吧
两个东西决定一个函数类型 参数类型和返回值类型
也把他们两个合起来叫做函数的类型
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
===========深入&-----------------&浅出============
来 自:浙江
等 级:新手上路
回复 2楼 laoyang103
就是加main()前运行的那个...之前会用了...然后过了一段时间没碰就忘了...现在想用了,不会了...纠结
Never give up
来 自:浙江
等 级:新手上路
我知道这些对各位大大不难...可教下我吧...
Never give up
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
主函数之前运行的函数&&?
那是什么函数?&&&可否给我段代码?
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
===========深入&-----------------&浅出============
来 自:浙江
等 级:新手上路
回复 5楼 laoyang103
自定义函数的函数在main函数之前必须被声明
代码等下...我去找找
Never give up
来 自:浙江
等 级:新手上路
#include &iostream&
#include &queue&
typedef struct
&&& int x,y,
unit arr[40000];
char map[202][202];
int n,m,step,dir[4][2]={{-1,0},{0,1},{1,0},{0,-1}};
void bfs(int a,int b)
&&& unit cur,
&&& queue&unit&
&&& map[a][b] = '#';
&&& cur.x =
&&& cur.y =
&&& cur.cout = 1;
&&& q.push(cur);
&&& while(!q.empty())
&&&&&&&&cur = q.front();
&&&&&&&&q.pop();
&&&&&&&&for(i=0;i&4;i++)
&&&&&&&&&&&&next.x = cur.x+dir[i][0];
&&&&&&&&&&&&next.y = cur.y+dir[i][1];
&&&&&&&&&&&&if(next.x&=0 && next.x&n && next.y&=0 && next.y&m)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& if(map[next.x][next.y]=='.')
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&next.cout = cur.cout+1;
&&&&&&&&&&&&&&&&&&&&q.push(next);
&&&&&&&&&&&&&&&&&&&&map[next.x][next.y]='#';
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& else if(map[next.x][next.y]=='x')
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&next.cout = cur.cout+2;
&&&&&&&&&&&&&&&&&&&&q.push(next);
&&&&&&&&&&&&&&&&&&&&map[next.x][next.y]='#';
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& else if(map[next.x][next.y]=='a')
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&flag =
&&&&&&&&&&&&&&&&&&&&step = step&cur.cout?step:cur.
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&}
int main()
&&& int i,j;
&&& while(cin&&n&&m)
&&&&&&&&flag =
&&&&&&&&step = n*m;
&&&&&&&&for(i=0;i&n;i++)
&&&&&&&&&&&&cin&&map[i];
&&&&&&&&for(i=0;i&n;i++)
&&&&&&&&&&&&for(j=0;j&m;j++)
&&&&&&&&&&&&&&& if(map[i][j]=='r')
&&&&&&&&&&&&&&&&&&&&bfs(i,j);
&&&&&&&&if(flag)
&&&&&&&&&&&&cout&&step&&
&&&&&&&&else
&&&&&&&&&&&&cout&&&Poor ANGEL has to stay in the prison all his life.&&&
&&& return 0;
Never give up
来 自:浙江
等 级:新手上路
C没找到...我只找到了C++的...代码有点区别而已...就是main前面定义好的东西...调用不大懂
Never give up
来 自:浙江
等 级:新手上路
Never give up
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
呵呵 原来是函数调用之前的声明啊&&
对于你的bfs你是定义在主函数之前的&&所以你的调用的时候
主函数已经知道了你的bfs函数的类型&&所以调用之前就不用声明它的类型
对于你的那些变量 最好把它删掉&&少使用全局的变量&&
那个结构体也和bfs函数一样&&都是在主函数之前定义的&&用它定义一个变量和用
调用函数原理是一样的
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
===========深入&-----------------&浅出============
版权所有,并保留所有权利。
Powered by , Processed in 0.105811 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
主要是电脑学习,欢迎电脑高手来与我交流。当然我欢迎任何人来和我交流。
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(28288)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'【C语言】函数和自定义函数',
blogAbstract:'&&& 函数,我之前也提到过一点点内容。其实函数是很好理解的,但是写起来又十分麻烦,所以我直接引用
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}}

我要回帖

更多关于 c语言函数问题例子 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信