C

结构体声明如何内存的分布, 结构体指针声明结构体的首地址, 结构体成员声明该成员在结构体中的偏移地址。

typedef struct_eg 
{ 
     int x; 
     int y; 
}eg; 
int point = 0x30000000; 
eg *peg = (eg*)point;

可以看到point本身只是个整型变量,但是这样的赋值是合法的,peg->x的值是0x30000000开始的四字节,peg->y是0x30000004开始的四字节

struct A1
{
	int a;
	char b;
};

struct A2
{
	char a;
	int b;
};

void  test222() {
	struct A1 x = { 10, 'A' };
	struct A2 y = { 'A', 10 };

	struct A1 *x1;
	struct A2 *z;
	printf("x: %d , %c \n", x.a, x.b); // 10 , A

	x1 = &x;
	printf("x1:  %d , %c \n", x1->a, x1->b); // 10 ,A

	z = (A2*)(x1);
	printf("z:  %c , %d \n", z->a, z->b); // , -858993599
}

数组变量转换为结构体

typedef struct_eg 
{ 
     int x; 
     char y; 
}eg; 
eg *peg ;

peg = (eg*)((char *)msg);


iディレクトリで複数のポータルサイトにディレクトリ登録

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:32:59 (1627d)

yVoC[UNLIMITȂ1~] ECirŃ|C Yahoo yV LINEf[^[Ōz500~`I


z[y[W ̃NWbgJ[h COiq 萔O~ył񂫁z COsیI COze