兩個結構體變量的賦值


#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\n", base_audio_device.samplerate);
	printf("base_audio_device  bits is %d\n", base_audio_device.bits);
	printf("base_audio_device  is %p \n", &base_audio_device);
	printf("Speaker_Audio_Module.base_audio_device  is %p\n", &(Speaker_Audio_Module.base_audio_device));
	printf("-------------------------------------------------\n");

	// 不好的地方 兩個變量是處於不同地址空間  即使空間內容一樣  但是沒有什么聯系。。。
	//  一個文件里面 經常是有要一個本文件的全局變量   操作這個變量 

	// 解決:方法一:就是使用結構體指針 
	// 事實上還是兩個基本問題(1)值拷貝    (2)地址拷貝的問題  指向的是同一個地址空間
	Base_Audio_Device* pbase_audio_device = &Speaker_Audio_Module.base_audio_device;
	printf("samprate is %d\n", pbase_audio_device->samplerate);
	printf("bits  is %d\n", pbase_audio_device->bits);
	printf("-------------------------------------------------\n");

	while (1);

	return 0;
}


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM