标题:问一个关于函数调用的问题
只看楼主
惧惧
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2016-6-19
结帖率:90.91%
已结贴  问题点数:20 回复次数:10 
问一个关于函数调用的问题
程序大概是这样的:

读取用户输入的字符串,
调用函数,
结束程序。

这个函数是,在之前就有的结构里找到该字符串所在的结构,将整个结构输出。
(因为不光这么简单,所以要调用一个函数)
那在函数里怎么申明局部变量啊?求解答~
搜索更多相关主题的帖子: 字符串 用户 
2016-09-02 14:50
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1728
专家分:3216
注 册:2015-12-2
得分:4 
在函数里声明的变量就是局部变量,变量只在函数内有效。也有在循环内声明变量的,这样的变量只在循环内有效,如for(int i=0;....)
2016-09-02 15:17
惧惧
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2016-6-19
得分:0 
回复 2楼 ehszt
那如果我申明的是一个字符串,他引用的直接就是main函数里面的字符串了?
2016-09-02 15:22
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1728
专家分:3216
注 册:2015-12-2
得分:0 
听不明白,如果变量是在主函数中声明的,子函数想直接用的话是不可能的。
2016-09-02 15:26
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
得分:8 
一个全局变量a和一个局部变量a,当调用a的时候先使用局部变量(前提是局部变量a的有效范围能内),不会影响到全局变量。
2016-09-02 17:04
鸿蒙之灵
Rank: 4
来 自:异次元裂缝
等 级:贵宾
威 望:11
帖 子:126
专家分:244
注 册:2016-8-22
得分:5 
将一个字符串从一个函数传递到另一个函数,可以用地址传递的办法,即用字符数组名作参数或用指向字符串的指针变量作参数。

程序代码:
#include <stdafx.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void f(char *str) {  //字符串作参数
printf(str);
}
char * r() {  //字符串作返回值 
//使用动态分配内存,不要使用局部变量比如
//char buf[80]; 因为局部变量在函数结束时,栈区变量已被回收
char *str = (char *)malloc(256 * sizeof(char)); 
if (str==0) { printf("can't alloc mem\n"); return 0;}
else memset(str, 0x00 ,sizeof(char) * 256);
return str;  //
}
int main()
{
char *pstr = r();
if (pstr!=0) strcpy(pstr, "hello world\n");
f(pstr);
free(pstr);
system("pause");
return 0;
}



输入的操作你可以再进行补充


对待编程,要像对待情人一样
2016-09-02 17:59
惧惧
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2016-6-19
得分:0 
回复 4楼 ehszt
C语言里子函数能调用函数本身吗?
2016-09-02 18:07
惧惧
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2016-6-19
得分:0 
回复 6楼 鸿蒙之灵
我们只学了基础的,你的有好多我都不认识。。不懂意思。
2016-09-02 18:09
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1728
专家分:3216
注 册:2015-12-2
得分:3 
回复 7楼 惧惧
可以呀,那叫递归。
2016-09-02 18:26
惧惧
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2016-6-19
得分:0 
回复 9楼 ehszt
好的好的
2016-09-02 18:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-468403-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 2.220755 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved