14周学习总结
军训期间没什么时间,链表还不会。先总结下指针。
1.指针赋值规范
指针p指向数组a[10];
*p=a;
2.**p;***p
#include<stdio.h>; int main() { int a=9; int *p; int **q; int ***q1; p=&a; q=&p; q1=&q; printf("%d %d\n",p,*p); printf("%d %d %d\n",q,*q,**q); printf("%d %d %d",*q1,**q1,***q1); }
q为p的地址,为a的地址的地址;
*q为p的值,为a的地址;
**q为*p的值,为a的值;
层层递进。
3.指针数组*p[10]中元素全为指针;
4.int a[10];普通数组所存储的元素是地址;
5.*p++ :取出p所指的那个数据,完事后把p移到下一位置。
6.地址和地址之间不能用‘==’
7.不能通过指针作赋值,修改
8.*p[10]侧重于数组;(*p)[10]侧重于指针;
9.在不确定要内存多大,不想浪费空间的,申请内存;
(类型*)malloc(sizeof(类型)*(strlen(str)+1)
申请完要free 内存单元
10.不能返回在函数内部定义的自动变量的地址
暂时先这样,睡了。