【小白】关于结构体与指针
【小白求助】关于结构体与指针
seqlist *p;//①
和seqlist s,*p=&s;//②
所得到的指针l有什么区别么?
当我用第一种方式得到p
然后给l->data[4](要不就是l->data[3])赋值时 总是无法操作 无法赋值
我用的的是CodeBlocks 编译器gcc;
不知道能不能看懂我说的;
还有哪位大神可以留下qq;
以后有问题指点一下;
在校大学生一枚;
------解决方案--------------------
指针申明后最好赋个初值,不然是很危险的!
------解决方案--------------------
seqlist *p;//①
和seqlist s,*p=&s;//②
1 定义了一个seqlist的指针变量,未做初始化。 p的作用就是可以指向一个seqlist的变量,但尚未指向
2 定义了一个seqlist变量s和seqlist指针变量*p, 然后取s的地址作为p的初始化值,这时候p不同于上一条的地方在于指向了一个真正的seqlist变量。
你之所以出错就是第一个p没有指向一个合适的seqlist变量,第二个p有指向。
看看这个:
int *pi;
int i, *pi=&i;
这个问题先把结构体放下分析一下,因为指针变量和变量跟是不是用在结构体上没有关系,你放到一块研究容易受到干扰。
------解决方案--------------------
------解决方案--------------------
- C/C++ code
#define MIXSIZE 1024 typedef int datatype; //定义结构体 typedef struct { datatype data[MIXSIZE]; int last; } seqlist;
seqlist *p;//①
和seqlist s,*p=&s;//②
所得到的指针l有什么区别么?
当我用第一种方式得到p
然后给l->data[4](要不就是l->data[3])赋值时 总是无法操作 无法赋值
我用的的是CodeBlocks 编译器gcc;
不知道能不能看懂我说的;
还有哪位大神可以留下qq;
以后有问题指点一下;
在校大学生一枚;
------解决方案--------------------
指针申明后最好赋个初值,不然是很危险的!
------解决方案--------------------
seqlist *p;//①
和seqlist s,*p=&s;//②
1 定义了一个seqlist的指针变量,未做初始化。 p的作用就是可以指向一个seqlist的变量,但尚未指向
2 定义了一个seqlist变量s和seqlist指针变量*p, 然后取s的地址作为p的初始化值,这时候p不同于上一条的地方在于指向了一个真正的seqlist变量。
你之所以出错就是第一个p没有指向一个合适的seqlist变量,第二个p有指向。
看看这个:
int *pi;
int i, *pi=&i;
这个问题先把结构体放下分析一下,因为指针变量和变量跟是不是用在结构体上没有关系,你放到一块研究容易受到干扰。
------解决方案--------------------
------解决方案--------------------