码迷,mamicode.com
首页 > 其他好文 > 详细

结构体,位域,共用体

时间:2020-06-10 18:47:30      阅读:57      评论:0      收藏:0      [点我收藏+]

标签:param   strcpy   memory   内存   nbsp   pre   否则   include   int   

#include <stdio.h>
#include <string.h>
/**
 * 结构体
 */
struct Books{
char a[30];
char b[30];
int c;
}Book1,Book2;

/**
 * 结构体作为参数
 * @param book [description]
 */
void printBook( struct Books book )
{
   printf( "Book a : %s\n", book.a);
   printf( "Book b : %s\n", book.b);
   printf( "Book c : %d\n", book.c);
}

/**
 * 结构体指针作为参数
 * @param book [description]
 */
void printBook1( struct Books *book )
{
   printf( "Book a : %s\n", book->a);//指针访问结构成员用->
   printf( "Book a : %s\n", (*book).a);//直接访问结构成员用.
   printf( "Book b : %s\n", book->b);
   printf( "Book c : %d\n", book->c);
}

void main()
{
// strcpy(Book1.a,"asdasdasdasd");
// strcpy(Book1.b,"123123");
// Book1.c = 212;
// printBook(Book1);
// 指向结构的指针
// struct Books *b;
// b = &Book1;
// printBook1(b);
// printBook1(&Book1);

/**
 * 位域
 */
// struct bc{
//  unsigned int a:1;
//  unsigned int  :1;
//  unsigned int b:5;
//  unsigned int c:3;
//  unsigned int d:8;
// }bit,*pbit;

// bit.a = 1;
// bit.b = 30;
// bit.b = 33;//定义的数字不能超过规定的内存 否则会编译失败
// bit.c = 7;
// bit.d = 255;
// printf("%d,%d,%d,%d\n", bit.a,bit.b,bit.c,bit.d);
// pbit = &bit;
// pbit->a = 1;
// pbit->b = 31;
// pbit->c = 7;
// pbit->d = 255;
// printf("%d,%d,%d,%d\n", bit.a,bit.b,bit.c,bit.d);

//共用体共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。
//您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。
//共用体提供了一种使用相同的内存位置的有效方式。
//共用体占用的内存应足够存储共用体中最大的成员。
// union Data{
//  int i;
//  float j;
//  char k[20];
// }data;
// printf( "Memory size occupied by data : %d\n", sizeof(data));//Memory size occupied by data : 20
// data.i = 10;
// data.j = 220.5;
// strcpy( data.k, "C Programming");
// printf( "data.i : %d\n", data.i);
// printf( "data.j : %f\n", data.j);
// printf( "data.k : %s\n", data.k);
/////////////////////////////////////////////////////
// data.i : 1917853763                             //
// data.j : 4122360580327794900000000000000.000000 //
// data.k : C Programming                          //
/////////////////////////////////////////////////////
///只有最后赋给变量的值才能够保存下来,其他的数据有损伤
}

 

结构体,位域,共用体

标签:param   strcpy   memory   内存   nbsp   pre   否则   include   int   

原文地址:https://www.cnblogs.com/godehi/p/13087363.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!