函數傳回值是指函數放在等號右邊時結果應該為何?
因此函數不可放在等號左邊。
    函數無論是否傳回值,均可單獨執行,例如下例是正確語法:
int one(void){
    return(1);
}

void main(){
int x;
x=one(); //放在等號右邊, x 得到 one 函數傳回值 1
one(); //單獨執行也可以
}
void one(void){
}

void main(){
int x;
x=one(); //one 函數無傳回值,不可放在等號右邊
one(); //只能單獨執行
}

具有傳回值的函數,單獨執行,就如同下列程式碼,c 語言是允許的。

int one(void){
    return(1);
}

void main(){
int x;
one(); //return 1 同右式
}
void main(){
int x;
1; //1 也可以單獨執行
}

具有傳回值函數,程式碼中若無傳回指令,也不會編譯錯誤。

int one(void){
//不寫傳回,也不會錯
}

void main(){
int x;
x=one(); //放在等號右邊, x 得到未知之值
}

傳回值的資料型態,除了基本資料型態,也可以使用者自訂資料型態。下面是使用者自定義結構(不懂者請參考結構)

struct complex{
int x;
int y;
};

struct complex *add(struct complex *a,struct complex *b){
a->x+=b->x;
a->y+=b->y;
return(a);
}

main(){
struct complex a,b;
struct complex *c;
a.x=2;a.y=-3; //2-3i
b.x=1;b.y=5; // 1+5i
c=add(&a,&b);//複數相加
printf("%d+%di\n",c->x,c->y);
}