C语言函数默认返回值(GCC编译器)
int型函数运行无误默认返回值为1,而float默认返回值为函数中最后一个操作过的float变量的值.
#include <stdio.h>
int foo1()
{
int i, j, k;
i = 3;
j = 2;
k = 5;
}
float foo2()
{
float i, j, k;
int a;
i = 4.0;
j = 5.0;
k = 8.0;
a = 2;
}
int main()
{
printf("foo1()的默认返回值为%d\n", foo1());
printf("foo2()的默认返回值为%f\n", foo2());
}
对于结构体指针函数而言,返回值则默认为最后一次用到(比如赋值,向指针所指结构体的某个变量赋值)的结构体指针。
#include <stdio.h>
#include <stdlib.h>
struct Lnode{
int data[100];
int last;
int length;
};
struct Lnode * foo()
{
struct Lnode *q;
struct Lnode *q2;
q2 = (struct Lnode *)malloc(sizeof(struct Lnode));
q2->last = -2;
q = (struct Lnode *)malloc(sizeof(struct Lnode));
q->data[0] = 1;
q->last = -1;
q2->data[0] = 2;//默认返回最后被用到的那个结构体指针
}
int main()
{
struct Lnode *p;
p = foo();
printf("%d %d",p->data[0], p->last);
}
其他类型的函数则不再详述,亲自试试便可以得知。