我从C++开始,真的看不到指针的优点。 我看到很多人说指针有助于节省内存或善于进行内存管理。在这个例子中使用指针的好处?
像波纹管的例子,他们返回相同的结果,如果我在这种情况下使用指针有什么不同?
没有指针
typedef struct
{
int book_id;
} Books;
void printbookinf(Books book);
int main()
{
Books bno1;
Books bno2;
bno1.book_id = 1225;
bno2.book_id = 3214;
printbookinf(bno1);
printbookinf(bno2);
return 0;
}
void printbookinf(Books book)
{
printf("abc %d",book.book_id);
}
与指针
typedef struct
{
int book_id;
} Books;
void printbookinf(Books *book);
int main()
{
Books bno1;
Books bno2;
bno1.book_id = 1225;
bno2.book_id = 3214;
printbookinf(&bno1);
printbookinf(&bno2);
return 0;
}
void printbookinf(Books *book)
{
printf("abc %d",book->book_id);
}
或本
typedef struct
{
int book_id;
} Books;
void printbookinf(Books *book);
int main()
{
Books *bno1;
Books *bno2;
bno1->book_id = 1225;
bno2->book_id = 3214;
printbookinf(bno1);
printbookinf(bno2);
return 0;
}
void printbookinf(Books *book)
{
printf("abc %d",book->book_id);
}
在这种情况下没有好处,而示例#3是未定义的行为。 – Cornstalks