学习c/c++,返回值函数很重要,现在总结一下关于函数返回值的一些东西,以示例为主,平常经验所得,有不妥处请指出,十分感谢!

先把简单的写上:

#include<stdio.h>
#include<string.h>
#include<math.h>

//#include<map>
#include<set>
#include<deque>
#include<queue>
#include<stack>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;

#define ll long long
#define da    0x3f3f3f3f
#define xiao -0x3f3f3f3f
#define clean(a,b) memset(a,b,sizeof(a))// 水印头文件 

void emp()
{
	cout<<"void函数无返回值"<<endl;
	return ;//此处无返回值 
}

int intt()
{
	cout<<"int型函数返回int值且必定返回int值"<<endl;
	return 0;//此时的返回值为int型的0; 
}

double doublee()
{
	cout<<"double型函数返回double值且必定返回double值"<<endl;
	return 0.0;//double的0,可以是小数; 
}

ll lolo()
{
	cout<<"ll型函数返回ll值且必定返回ll值"<<endl;
	return 0;// ll的0; 
}

int main()
{
	emp();
	cout<<intt()<<endl;;
	cout<<doublee()<<endl;
	cout<<lolo()<<endl;
}

ok,水完简单的,我们来研究一下对于指针变量的返回值:

话说这还是在写链表的时候研究返回指针的问题:

其实返回的

#include<stdio.h>
#include<string.h>
#include<math.h>

//#include<map>
#include<set>
#include<deque>
#include<queue>
#include<stack>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;

#define ll long long
#define da    0x3f3f3f3f
#define xiao -0x3f3f3f3f
#define clean(a,b) memset(a,b,sizeof(a))// 水印头文件 

struct node{
	int data;
	node *next;
};
/*
5
1 2 3 4 5
*/
node *chuancan(node *head)
{
	node *can=(node*)malloc(sizeof(node));
	cout<<&can<<" "<<endl;
	can=head;
	while(1)
	{
		if(can->next==NULL)
			return can;
		can=can->next;
	}
}

int main()
{
	node *head=NULL;
	node *can=(node*)malloc(sizeof(node));
	head=can;
	if(head->next==NULL)
	{
		cout<<"f"<<endl;
		return 0;
	}
	int n;
	cin>>n;
	int i,j;
	cin>>head->data;
	head->next=can;
	for(i=1;i<n;++i)
	{
		node *next=(node*)malloc(sizeof(node));
		cin>>next->data;
		can->next=next;
		if(i==n-1)
			can->next=NULL;
		else
			can=next;
	}
	can=head;
	while(can->next!=NULL)
	{
		cout<<can->data<<" ";
		can=can->next;
	}
	cout<<head->data<<" "<<head->next<<" "<<&head<<endl;
	head=chuancan(head);//head的地址没有改变,只是里面的内荣改变了,里面的东西变了,这个我迷了好久
	cout<<head->data<<" "<<head->next<<" "<<&head<<endl;
	
}