读书人

typedef struct 结构体有关问题

发布时间: 2012-11-07 09:56:10 作者: rapoo

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 *的别名。即结构体变量指针类型的别名。

读书人网 >C语言

热点推荐