读书人

大家帮小弟我看看这句什么意思

发布时间: 2012-02-15 12:09:44 作者: rapoo

大家帮我看看这句什么意思?
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include "graphics.h "

#define SCREEN (*SCREENPOINTER)
#define ROW 25
#define COLUMN 80

typedef struct TEXT
{
unsigned char CHAR;
unsigned char ATTRIBUTE;
}TEST;

typedef TEST SCREENARRAY[ROW][COLUMN]; 这句还懂
SCREENARRAY *SCREENPOINTER=(SCREENARRAY *)0xb8000000l;这句?

这样行麻?SCREENARRAY[ROW][COLUMN] *SCREENPOINTER=(SCREENARRAY *)0xb8000000l;

[解决办法]
typedef struct TEXT
{
unsigned char CHAR;
unsigned char ATTRIBUTE;
}TEST;

typedef TEST SCREENARRAY[ROW][COLUMN]; 这句还懂
SCREENARRAY *SCREENPOINTER=(SCREENARRAY *)0xb8000000l;这句?
--------------------------------------------------
TEST 是个结构体。

typedef TEST SCREENARRAY[ROW][COLUMN]; 这句还懂
-------------------------
这句定义一个新类型。SCREENARRAY。
SCREENARRAY是个二维数组。数组元素都是结构体TEST 类型的。
两个维度分别是ROW和COLUMN


SCREENARRAY *SCREENPOINTER=(SCREENARRAY *)0xb8000000l;
--------------------------------
定义一个指针变量。类型是SCREENARRAY *。

变量名是SCREENPOINTER。

并同时给变量赋初值。指向一个地址0xb8000000l。
同时为了解析,将这片地址强制转换为指针类型。也就是(SCREENARRAY *)
[解决办法]
这样行麻?SCREENARRAY[ROW][COLUMN] *SCREENPOINTER=(SCREENARRAY *)0xb8000000l;
==============
不行。

SCREENARRAY[ROW][COLUMN] *不是个类型。
[解决办法]
typedef TEST SCREENARRAY[ROW][COLUMN];

那么如果想访问SCREENARRAY中的某一元素能这么访问么?

SCREENARRAY[1][1].CHAR = 'a ';
[解决办法]
typedef TEST SCREENARRAY[ROW][COLUMN]; 这句还懂
SCREENARRAY *SCREENPOINTER=(SCREENARRAY *)0xb8000000l;这句?

下面这句就是把地址0xb8000000l强制转换成了SCREENARRAY类型的一个指针,用SCREENARRAY的一个指针变量SCREENPOINTER来接收


这样行麻?SCREENARRAY[ROW][COLUMN] *SCREENPOINTER=(SCREENARRAY *)0xb8000000l

不行的,因为SCREENARRAY[ROW][COLUMN]并不是类型

读书人网 >C语言

热点推荐