两个结构体变量的赋值

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <math.h>
#include<stdlib.h>
#include <dos.h>
#include <conio.h>

typedef struct __Base_Audio_Device
{
	int samplerate;
	int bits;
}Base_Audio_Device;


typedef struct __Audio_Module
{
	Base_Audio_Device base_audio_device;
	int Cards;
}Audio_Module;

static Audio_Module  Speaker_Audio_Module =
{
	{ 48000,16 },

};

int main()
{
	// 用法一:赋值 取值 
	Base_Audio_Device base_audio_device = Speaker_Audio_Module.base_audio_device;
	printf("base_audio_device  samplerate is %d
", base_audio_device.samplerate);
	printf("base_audio_device  bits is %d
", base_audio_device.bits);
	printf("base_audio_device  is %p 
", &base_audio_device);
	printf("Speaker_Audio_Module.base_audio_device  is %p
", &(Speaker_Audio_Module.base_audio_device));
	printf("-------------------------------------------------
");

	// 不好的地方 两个变量是处于不同地址空间  即使空间内容一样  但是没有什么联系。。。
	//  一个文件里面 经常是有要一个本文件的全局变量   操作这个变量 

	// 解决:方法一:就是使用结构体指针 
	// 事实上还是两个基本问题(1)值拷贝    (2)地址拷贝的问题  指向的是同一个地址空间
	Base_Audio_Device* pbase_audio_device = &Speaker_Audio_Module.base_audio_device;
	printf("samprate is %d
", pbase_audio_device->samplerate);
	printf("bits  is %d
", pbase_audio_device->bits);
	printf("-------------------------------------------------
");

	while (1);

	return 0;
}


 

一勤天下无难事。
原文地址:https://www.cnblogs.com/nowroot/p/12840382.html