user-0 提问: 我写了一个顺序表的简单操作， 一直不理解这个指针的用法。 

回复:
user: user-1
content: C语言不支持&传参吧

user: user-2
content: 引用 7 楼 自信男孩 的回复:#include <stdio.h> #include <stdlib.h>  #define LIST_MAX 10  typedef struct {     int List_data[LIST_MAX];     int Lenth; }SqrList;  void List_insert(SqrList *L,int NUM, int Change) {     for(int j=L->Lenth;j>=NUM;j-- )     {         L->List_data[j] = L->List_data[j-1];     }     L->List_data[NUM-1] = Change;     L->Lenth++; }  void List_Init(SqrList *L ) {      L->Lenth = 6 ;     for(int i = 0; i<L->Lenth;i++)     {         L->List_data[i] = 0;     } }  //void List_printf(SqrList &L) void List_printf(SqrList *L) {     //for(int i=0;i<L.Lenth;L++)     for(int i=0;i<L->Lenth;i++)     {         printf("顺序表的第%d个的值：%d\n",i,L->List_data[i]);     }  }  int main() {     SqrList L;      List_Init(&L);      List_printf(&L);      List_insert(&L,5,4);      List_printf(&L);      return 0; }  供参考～  用指针替换应用～ 不是应用而是引用&

user: user-2
content: #include <stdio.h> #include <stdlib.h>  #define LIST_MAX 10  typedef struct {     int List_data[LIST_MAX];     int Lenth; }SqrList;  void List_insert(SqrList *L,int NUM, int Change) {     for(int j=L->Lenth;j>=NUM;j-- )     {         L->List_data[j] = L->List_data[j-1];     }     L->List_data[NUM-1] = Change;     L->Lenth++; }  void List_Init(SqrList *L ) {      L->Lenth = 6 ;     for(int i = 0; i<L->Lenth;i++)     {         L->List_data[i] = 0;     } }  //void List_printf(SqrList &L) void List_printf(SqrList *L) {     //for(int i=0;i<L.Lenth;L++)     for(int i=0;i<L->Lenth;i++)     {         printf("顺序表的第%d个的值：%d\n",i,L->List_data[i]);     }  }  int main() {     SqrList L;      List_Init(&L);      List_printf(&L);      List_insert(&L,5,4);      List_printf(&L);      return 0; }  供参考～  用指针替换应用～

user: user-3
content: 引用 5 楼 克制、学 的回复：[quote=引用 1 楼 chxchxkkk 的回复:]C语言不支持&传参吧   但是我后面改了，回报这个错误  request for member 'List_data' in something not a structure or union|[/quote]你改成指针的形式就不能用点.操作符了L.List_data，要改成->操作符L->List_data，或者改成(*L).List_data

user: user-0
content: 引用 1 楼 chxchxkkk 的回复:C语言不支持&传参吧   但是我后面改了，回报这个错误  request for member 'List_data' in something not a structure or union|

user: user-0
content: 引用 2 楼 user-3 的回复:List_printf函数的for(int i=0;i<L.Length;L++)的L++改成i++。  多谢，这是我的一个错误。

user: user-0
content: 引用 1 楼 chxchxkkk 的回复:C语言不支持&传参吧   我有一点印象， 这个好像是C++的； 指针真的是有点晕乎；

user: user-3
content: List_printf函数的for(int i=0;i<L.Length;L++)的L++改成i++。

user: user-0
content: 引用 8 楼 自信男孩 的回复:[quote=引用 7 楼 自信男孩 的回复:]#include <stdio.h> #include <stdlib.h>  #define LIST_MAX 10  typedef struct {     int List_data[LIST_MAX];     int Lenth; }SqrList;  void List_insert(SqrList *L,int NUM, int Change) {     for(int j=L->Lenth;j>=NUM;j-- )     {         L->List_data[j] = L->List_data[j-1];     }     L->List_data[NUM-1] = Change;     L->Lenth++; }  void List_Init(SqrList *L ) {      L->Lenth = 6 ;     for(int i = 0; i<L->Lenth;i++)     {         L->List_data[i] = 0;     } }  //void List_printf(SqrList &L) void List_printf(SqrList *L) {     //for(int i=0;i<L.Lenth;L++)     for(int i=0;i<L->Lenth;i++)     {         printf("顺序表的第%d个的值：%d\n",i,L->List_data[i]);     }  }  int main() {     SqrList L;      List_Init(&L);      List_printf(&L);      List_insert(&L,5,4);      List_printf(&L);      return 0; }  供参考～  用指针替换应用～ 不是应用而是引用&[/quote]   正确了， 这个指针的确灵活。

user: user-0
content: 引用 6 楼 user-3 的回复:[quote=引用 5 楼 克制、学 的回复：][quote=引用 1 楼 chxchxkkk 的回复:]C语言不支持&传参吧   但是我后面改了，回报这个错误  request for member 'List_data' in something not a structure or union|[/quote]你改成指针的形式就不能用点.操作符了L.List_data，要改成->操作符L->List_data，或者改成(*L).List_data[/quote]  是的， 正确了。