实参&形参
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
using namespace std;
void add(int a, int b) //形参,整形
{
cout << "a+b的和为:" << a + b << endl;
}
struct Books
{
char name[40];
int price;
char publicer[100];
char author[40];
};
void fun1(Books book) //形参,结构体
{
cout << "书名为:" << book.name << endl;
cout << "书的价格为:" << book.price << endl;
cout << "书的出版社为:" << book.price << endl;
cout << "书的作者为:" << book.author << endl;
}
void fun2(Books *book) //形参,结构体,指针
{
cout << "书名为:" << book->name << endl;
cout << "书的价格为:" << book->price << endl;
cout << "书的出版社为:" << book->price << endl;
cout << "书的作者为:" << book->author << endl;
}
int main()
{
add(3, 3); //实参,整形,相当于a=3,b=3
cout << endl;
Books books;
strcpy(books.name, "幸福的拾荒者");
//strcpy_s(books.name, "幸福的拾荒者");
books.price = 28;
strcpy(books.publicer, "接力出版社");
//strcpy_s(books.publicer, "接力出版社");
strcpy(books.author, "huge");
//strcpy_s(books.author, "huge");
fun1(books); //实参,结构体,相当于book=books
cout << endl;
fun2(&books); //实参,结构体,指针类型,相当于*book=&books
system("pause");
return 0;
}
结果:
注:本人使用的VS为2017版本,使用"strcpy"函数会出现警告,本人知道的解决方法:
1)在头函数加入#define _CRT_SECURE_NO_WARNINGS
2)将strcpy改为strcpy_s