指针:
①
程序经过编译之后已经把变量名转换为变量地址,对变量值的存取操作实际上是通过变量地址执行的,比如:
printf("%d",i);
编译时确定变量名和地址的对应关系,在执行这个命令的时候,先找到i的地址,然后读取自i的地址开始往后的两个字节内容(假定i是整形)。
scanf("%d",&i);
就是将输入内容存储到自i的地址开始的存储单元中。
②
存取变量值有两种方式:
直接存取:k=i+j;
间接存取:用指针变量存放变量i的地址,比如i_pointer=&i; 就是将i的地址存放在i_pointer中
指针是一个地址,而指针变量式存放地址的变量
③
枚举类型
字符串:
①字符串处理常用函数:strcat(str1,str2); //将str2复制到str1尾端
strcpy 将字符串复制到字符数组中
strcmp(str1,str2); //逐字符比较字符串大小,在英文字典中后边的比前边的大,小写字母比大写字母大 (此时返回正数,反之亦反)
strlen(str); //返回字符数组长度
strlwr(str); //改为小写
结构体:
① 对结构体变量输入,必须发送地址。因为如果只是传值的话,也就是向函数传递了一份拷贝,函数中的操作并不会影响原来本身的变量值。而只有传地址才可以实现传过去的值改变也可以同时改变原来的变量值,这其实就相当于java中的传引用。而java中的引用对应于c语言的指针,所以必须在输入时发送地址
链表:
首节点:存放第一个有效数据的结点
头结点:首节点之前的结点,并不存放有效数据,目的是方便对链表的操作
头指针:存放头结点地址的指针变量