首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

typedef struct 结构体有关问题

2012-11-07 
typedef struct 结构体问题大家好,有个问题请教大家:如一个结构体typedefstructtest{int ichar buff[256]

typedef struct 结构体问题
大家好,
  有个问题请教大家:如一个结构体
   
  typedef struct test 
  {  
  int i;
  char buff[256];
  } Test,*test;

   
  1. Test 是这个结构体的别名,我清楚,但是*test代表什么啊,我不太清楚,是指针吗 
  2. *test怎么理解


谢谢!

[解决办法]
test是指向一个test结构体类型的指针。

[解决办法]
指的是,test是指针类型,给你一个示例代码:

C/C++ code
#include <iostream>using namespace std;typedef struct {} Test, *PtrTest;int main() {    Test t;    PtrTest pt = &t;    //PtrTest ppt = t;  这行是无法通过编译的    return 0;}
[解决办法]
typedef struct _Test
{
int i;
char buff[256];
} Test,*test

这样我觉得好一点
[解决办法]
如楼上所言,和
typedef int *p;
p a;
a表示指向int的指针
[解决办法]
这就等于 struct test 看作一个类型 如int
Test *test 就等于别名 Test a test b 类似于 int a int *b
[解决办法]
test相当于Test*类型,是指针类型,给你举个例子就很清楚了:
C/C++ code
#include <string.h>#include <stdlib.h>#include <stdio.h>typedef struct test {      int i;    char buff[256];}Test, *test;int main(int arg, char* argv[]){    test tt = (Test*)malloc(sizeof(Test));    tt->i = 3;    strcpy(tt->buff, "Hello World!");    printf("%s\n", tt->buff);    return 0;}
[解决办法]
探讨

test是指向一个test结构体类型的指针。

[解决办法]
其实*test也是别名但是代表的是struct *的别名。即结构体变量指针类型的别名。

热点排行