C Tutorial
Similar like ordinary data type variables, a structure variable can also be passed to a function.
Either pass a individual structure elements or the entire structure at one go.
We can also pass the addresses of structure elements or address of a structure variable.
In programming, we usally deal with collection of ints, chars and floats rather than isolated entities.
Example an entity book is a collection of things like a title, an author, total pages, date of publication and price etc..
Structure is user defined data type which combines dissimilar data types into an entity.
This c program is the example to pass entire structure variable to a function.
structure variable b1 is passed to function show where displayed the entire structure variable.
#include<stdio.h> struct book { int id; char *title; char *author; float price; }; void show(struct book b1) { printf("Inside show function"); printf("\nbook id\ttitle \t auther \t price \n"); printf("%d\t%s\t%s \t%f\n", b1.id, b1.title, b1.author, b1.price); } void main() { struct book b1 = {1, "book1", "author1", 20.5}; show(b1); printf("Inside main function"); printf("\nbook id\ttitle \t auther \t price \n"); printf("%d\t%s\t%s \t%f\n", b1.id, b1.title, b1.author, b1.price); }
Output:
$ cc structure.c $ ./a.out Inside show function book id title auther price 1 book1 author1 20.500000 Inside main function book id title auther price 1 book1 author1 20.500000
This c program is the example of passing the addresses of structure variable to a function.
This programm passing address to a function and prints the entire structure variable using pointer.
#include<stdio.h> struct book { int id; char *title; char *author; float price; }; void show(struct book *b1) { printf("Inside show function"); printf("\nbook id\ttitle \t auther \t price \n"); printf("%d\t%s\t%s \t%f\n", b1->id, b1->title, b1->author, b1->price); } void main() { struct book b1 = {1, "book1", "author1", 20.5}; show(&b1); printf("Inside main function"); printf("\nbook id\ttitle \t auther \t price \n"); printf("%d\t%s\t%s \t%f\n", b1.id, b1.title, b1.author, b1.price); }
Output:
$ cc structure.c $ ./a.out Inside show function book id title auther price 1 book1 author1 20.500000 Inside main function book id title auther price 1 book1 author1 20.500000
This c program is passing the individual structure element 'title' to the show function as pointer and displaying it.
#include<stdio.h> struct book { int id; char *title; char *author; float price; }; void show(char *title) { printf("Inside show function"); printf("\ntitle: %s\n", title); } void main() { struct book b1 = {1, "book1", "author1", 20.5}; show(b1.title); printf("Inside main function"); printf("\nbook id\ttitle \t auther \t price \n"); printf("%d\t%s\t%s \t%f\n", b1.id, b1.title, b1.author, b1.price); }
Output:
$ cc structure.c $ ./a.out Inside show function title: book1 Inside main function book id title auther price 1 book1 author1 20.500000
This c program is passing the individual structure element 'title' to the show function as array and displaying it.
#include<stdio.h> struct book { int id; char *title; char *author; float price; }; void show(char title[30]) { printf("Inside show function"); printf("\ntitle: %s\n", title); } void main() { struct book b1 = {1, "book1", "author1", 20.5}; show(b1.title); printf("Inside main function"); printf("\nbook id\ttitle \t auther \t price \n"); printf("%d\t%s\t%s \t%f\n", b1.id, b1.title, b1.author, b1.price); }
Output:
$ cc structure.c $ ./a.out Inside show function title: book1 Inside main function book id title auther price 1 book1 author1 20.500000
This c program explains how to pass the address of individual structure elements to a function.
Address can be passed using & symbol and value of address can be accessed using * pointer.
#include<stdio.h> struct book { int id; char *title; char *author; float price; }; void show(int *id) { printf("Inside show function"); printf("\naddress of id: %d\n", id); printf("value of id: %d\n", *id); } void main() { struct book b1 = {1, "book1", "author1", 20.5}; show(&b1.id); printf("Inside main function"); printf("\nbook id\ttitle \t auther \t price \n"); printf("%d\t%s\t%s \t%f\n", b1.id, b1.title, b1.author, b1.price); }
Output:
$ cc structure.c $ ./a.out Inside show function address of id: 62636304 value of id: 1 Inside main function book id title auther price 1 book1 author1 20.500000
C Tutorial
Privacy Policy | Copyright2020 - All Rights Reserved. | Contact us
| Report website issues in Github
| Facebook page
| Google+ page