c语言函数返回指针

作者&投稿:本峰 (若有异议请与网页底部的电邮联系)

C语言中如何定义一个返回值为char *的函数指针。
C语言中,函数的定义格式:函数返回值类型 函数名 (形参列表)。所以,返回值为char* 的函数指针的定义格式是:char* (*指针变量名)(函数形参列表){ 函数体;}

C语言中函数指针能不能作为返回类型使用?
可以,只是你的函数定义方式有问题 比如 char *strcpy(char *src,char *dest);就是返回一个字符串类型的指针 int(*foo)(int,int);是返回一个整形的函数指针

c语言中调用函数如何返回多个值?
2、通过使用指针返回结果为:3、通过使用结构:因为结构是用户定义的数据类型;可以定义一个包含两个整数变量的结构,并将更大和更小的值存储到这些变量中,然后使用该结构的值。4、通过使用结构返回结果为:5、通过使用数组,当一个数组作为参数传递时,基地址将传递给该函数,因此无论对数组副本所做的...

C语言中调用函数的返回值只要是指针,定义函数是不是就得加*
是的 例如int *ff(a[],n) {return a[n]} 那么返回的就是a[n]这个元素,并且有一个指针指向它.

C语言指针与返回值
函数A的返回值错误。虽然地址和指针很像,但还是不同的两个东西。而且,一旦出了函数A,返回的地址,也就该被回收,会导致程序出错。是非常危险的行为。举个例子说明下吧。int *p=a;这个,在数值上,p是和a的地址相等的,也就是有p==&a。这时如果a=1;那么你知道*p==1,是真。但是此时,p存储...

c语言如何定义一个函数可以返回多个值回去给主函数呀。
函数的返回值顶多是一个数,通过函数直接返回的这个数只有在是指针时才能给出多个数据结果。可以考虑以下几个方法:返回指针:int* display() { int *p; p=malloc(sizeof(int)*6); ... return p; } \/\/用p[0]~p[5]计算各位 void main() { int *p; p=display(); ... free(p); }...

c语言中,返回指针的函数的问题
int number[5]={0},*p1;这里的number数组会在退出函数后被释放,所以,其中保存的值在从函数返回后不再具有可读性.改为如下:static int number[5]={0},*p1=number;或者用malloc()动态分配空间创建数组

C语言函数可以有返回值吗?
如若不一致,则自动将返回值强制转换为函数首部定义的类型。没有定义类型时默认为int型。也就是说你的函数是什么类型,返回值就是什么类型。比如:函数定义 int fun(int a,char b)返回值就是整型 函数定义 int *fun(int a)返回值就是基类型为整型的指针 函数定义 void fun(int a)无返回值 ...

C语言中函数返回指针的问题
内存被释放,不一定马上被用作其他功能.即使被使用, 也未必马上被修改值.所以 输出结果为100是正常的. 只是概率性问题.实际编程中为了稳定性 不应有此类操作.

C语言函数前面加个指针是什么意思?
C语言函数前面加个指针 表示函数的返回值是指针类型的。实例:include <stdio.h> using namespace std;int* lpfun1(int,int); \/\/声明一个返回指针为int类型的函数 void main(){ int *result=lpfun1(10,20);printf("%d\\n",*result);delete result;\/\/删除堆中的指针 result=0; \/\/使指针...

洪广18415311398问: C语言怎么让“函数”返回“指针数组” -
兴文县复方回答: 首先,你不应该返回局部变量的指针,因为局部变量在离开函数后就会被销毁.如果你想这样返回一个数组的话,你应该malloc出一个数组来返回. 至于应该return什么,return (malloc出来的那个指针)就可以了. 例如 int** foo() { int **p = (int **)malloc(sizeof(int *)*10); ... ... ... return p; } 这个p指向一个内存段,这个内存段存有十个int*类型的元素.

洪广18415311398问: C语言 返回指针的函数 问题 -
兴文县复方回答: 返回指针 要看这个局部指针变量在函数运行后 保存了哪个空间的地址了 指针里的值是可以返回的 就像你说的 “ return i,主调函数知道一个i就可以了 ” 同样主函数 知道一个指针里的地址就可以了. 但是这个地址入口的空间现在可用否,那要看具体情况了 1 此地址所指向的空间 是个局部变量 也就是存在栈区,那么在申请次局部变量的函数结束时,局部变量被释放,用户没有使用他的权限了 出错 2 此地址所指向的空间 不是局部变量,比如是个静态变量 全局变量 或者是malloc申请的存在堆中的,那么他就不是你随着函数的离去二离去了,他任然存在,结果可用 正确

洪广18415311398问: c语言 函数返回数组指针? -
兴文县复方回答: 由于你在子函数int *shuzu(void)中定义的数组 a[4];属于局部变量,在子函数结束时会被释放,所以返回的指针变成野指针,会乱码;简单的解决方法有两种,1. 将数组定义在主函数之前(#include 下面),那么就变成了全局变量,不会被释放了;2.使用malloc或者calloc开空间后再赋给这个数组,这样也不会被释放了;第一种方法有缺点,以后学到全局变量的时候会知道,第二种方法估计你还没学到,不过很简单,百度一下就会了~~~

洪广18415311398问: c语言的函数如何返回指针(请举例) -
兴文县复方回答: char* foo() {char* sz="abc";return sz; }

洪广18415311398问: c语言中如何用返回函数指针 -
兴文县复方回答: 举个两个整数加法的例子,希望对你有帮助:#include #include 声明指向函数的指针类型fpAdd,该类型的函数,有两个整数作为参数,返回值是一个整数.其他类型的函数指针声明方式类似,即:typedef 函数返回值类型 (*函数指针类型名称...

洪广18415311398问: (C语言)返回指向数组的指针的函数 -
兴文县复方回答: 第二种方法是因为类型不匹配(double*与(double(*)[ROW])产生错误,而且((double (*)[row])matrix); 里的[row]是一个变量,而指向数组的指针 double (*matrix)[ROW]里的ROW只能使用常量,所以这里也有一个错误.由于指向数组的指针指向的数组长度(即第一维)必须是确定的常量,所以你这种行列皆不确定的数组不能用这种形式返回.我觉得用第一种形式好一点,访问二维数组a[i][j]可以转换成访问一维数组a[i*row+j];//row是列数 如果非要返回二维数组的话,我想用指针数组会好一点,不过分配空间的时候就麻烦一点.

洪广18415311398问: C语言如何声明一个返回函数指针的函数? -
兴文县复方回答: C语言指向函数的指针承载的信息比较复杂,组织起来要素要写全.根据指向函数的指针的书写语法,下面的代码就是一个返回函数指针的函数: int (*f(void))(int){//f是函数,没有参数,返回指向一个函数的指针;这个被指向的函数有一个int型形...

洪广18415311398问: C语言中的函数指针 -
兴文县复方回答: 函数指针是定义一个指向函数的指针,形式为:void (*p)(void); 一般用法:int fun1(int x); int fun2(int x); char fun3(int x); int fun4(char x); int main(void) { int (*p)(int x);p=fun1; //指向fun1 p(2) //这时等价于fun1(2) p=fun2; //也可以指向fun2 . .但...

洪广18415311398问: C语言中,怎样定义函数可以让函数返回一个指针数组? -
兴文县复方回答: 返回它的地址不就行了么,指针数组的首地址就可以了 比如 有一个指针数组 char *p[10] = {这里面放的都是指针},那么p的类型就是char **类型 你定义一个函数,返回char **类型就行了 比如 char **fun() {char **s;returns; }

洪广18415311398问: C语言中,定义一个函数时,要返回的是指针,该怎样表达呢?谢谢 -
兴文县复方回答: 你把返回值写成指针型就可以了,具体得看你参数是怎样的,还有返回值是什么类型的指针:比如:int * scar(int ) 这个函数参数是一个整型,返回值是个整型指针.类比你可以写出来其他类型的函数


本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网