序
希望您能把指针看似天上最灿烂的星星(*)
网盘下载:微盘
文件格式:Xmind 制作软件:Xmind Pro
指针的内涵
指针变量用于存储变量地址。由于我们使用*作用于指针变量,所以作者喜欢把指针当成星星。作者把指针比喻成钥匙(信箱的钥匙),而把变量值当成信件。
数组的内涵
数组名称表示数组第一个元素的地址。
由于数组变量存储第一个元素的地址,所以数组变量也是一个指针变量。但是不同的是,不能对数组变量进行自增(++)或自减(--)运算,所以我们管数组变量叫做指针常量。
指针操作符
我们可以使用[]或*取指针指向变量里的值。
指针(*)和数组([])是互通的。
字符串常用操作>
字符串长度:strlen(str1);
字符串复制:strcpy(str1接收者, str2给予者)
strncpy(str1接收者, str2给予者, n复制个数)
字符串连接:strcat(dest被连接者, source连接者)
strncat(dest, source,n)
字符串比较:strcmp(str1, str2)
str1 == str2 地址比较,用于判断str1和str2是否指向同一个变量。
结构体
通过指针访问成员使用->或(*).
结构体是派生的数据类型。结构体是由相同或不同数据类型组成的集合体。
常用代码
定义结构体
typedef struct _student{ char name[10]; int score; } student;
分配内存
student *ptr = (student *) malloc ( sizeof(student) );
文件操作
int main(){ char id[10]; FILE *fptr; if((fptr = fopen("test.dat", "a+")) == NULL){ printf("无法打开test.dat"); return 1; } do{ printf("请输入id\n"); scanf("%s", id); fprintf(fptr, "%s\n", id); }while(strcmp(id, "-1") != 0); fclose(fptr); return 0; }
书中错误
1、书中第一篇第4节(11页)是这样描述结构体的(见下图)。——实际上结构体是相同或不同数据类型组成的。
2、(12页)是不是我理解上的错误,从这句话我误认为结构体成员在内存中是相邻的。——但实际上不是。
3、53页(命令行自变量篇),这个明显表示不同的意思,怎么就归纳到一起了?
推荐