结构体指针(关于C语言传值的理解)
2014-03-24 23:19
471 查看
//定义一个结构体 struct word_count { int ch_count; int word_count; int line_count; }; //定义一个结构体指针 typedef struct word_count *p_count_struct; //对结构体进行初始化 void init(p_count_struct *count_ent) { (*count_ent) = (struct word_count *)malloc(sizeof(struct word_count)); (*count_ent)->ch_count = 0; (*count_ent)->word_count = 0; (*count_ent)->line_count = 0; //printf("ch_count: %d, word_count: %d, line_count: %d\n", (*count_ent)->ch_count, (*count_ent)->word_count, (*count_ent)->line_count); } //main函数调用 int main(int argc, char *argv[]) { p_count_struct count_ent; init(&count_ent); printf("ch_count: %d, word_count: %d, line_count: %d\n", count_ent->ch_count, count_ent->word_count, count_ent->line_count); }
理解
main函数将结构体指针的地址(&count_ent)传递给init函数,
p_count_struct *为结构体指针的指针类型,所以现在init函数中的
count_ent是一个结构体指针的地址(不同与main函数中的count_ent),对其解引用
*count_ent才是结构体指针。另外:当一个指针p指向一个结构体时,可以用
p->结构成员。
相关文章推荐
- C语言中关于const与指针结合的理解
- 关于c语言二维数组与指针的个人理解及处理办法。
- 关于C语言指针的一些理解(一)
- 关于C语言中二级指针的理解
- 关于C语言中常量指针和指针常量的一点理解
- 关于c语言传值与传址的理解
- 关于C语言指针的理解
- 关于C语言动态分配内存传指针的理解
- 关于c语言二维数组与指针的个人理解及处理办法。
- C语言的指针深入理解外加一精华帖
- 理解C语言——从小菜到大神的晋级之路(8)——数组、指针和字符串
- 关于C语言中的字符数组和字符指针
- 深入理解C语言指针的奥秘
- 对C语言数据处理和指针的理解(二)
- 关于C语言中的数组指针、指针数组以及二级指针
- 深入理解C语言指针的奥秘
- C语言练习篇-6利用指针通过形参传值给主调函数
- 深入理解C语言指针的奥秘
- 关于指针和数组的重新理解
- c语言中较常见的由内存分配引起的错误_内存越界_内存未初始化_内存太小_结构体隐含指针