目的:
学习C语言中的重难点知道点指针,以及结构体、文件使用等,增加对C语言的理解与运用。
技术:
1.指针:
(1)(C++中最难的是指针 多继承)
c指针:为什么要指针 (必须了解 它的地址和内存空间):指针解决跨区域(不同作用域 不同代码块)之间的数据交换
‘*’:1.申明/定义变量的时候 表是一个指针变量
float b = 20;int c = 10;int *a;
定义一个指针变量 指向的内存空间只能存放整数 注意:定义指针变量的时候一定要赋初值
int *a = b;//不行 指针变量只能存地址 不能存具体值 int *a = &b;//不行 整形指针只能存整数数据的地址 int *a = &c;//ok
float *d =NULL;NULL指向内存的起始地址 0x00
2.除了定义指针变量之外 都是访问某个地址的值
int *temp = &c;//定义指针变量 *temp = 21;//访问temp地址里面的数据 赋值为21
‘&’:重点:指针变量在内存空间中站8个字符 printf("%p",&score);//打印地址
(2)指针与数组的关系:
数组名并不是一个变量 没有分配内存空间 int a = 10; 指针变量是有内存空间
定义一个数组 系统会分配内存空间 可以存值
int num[10] = {};
定义一个指针变量 只为变量本身分配8个字节内存空间
无法存值,因为没有为他分配可以存值的内存空间
int *p;
(3)如果想给指针指向的区域赋值
1.指针变量已经指向某块区域
int a3 = 10; int *pA = &a3; //指向变量a的内存地址 *pA = 30;
2.指针指向一个数组
int num2[10] = {}; int *pNum = num2; //指向数组num2的首地址
*(pNum+0) = 20; pNum[0] = 20; *(pNum + 1) = 30; pNum[1] = 30;
3.动态分配内存 malloc realloc free(导入#include"stdlib.h")
2.结构体:
结构体是一种数据类型 复合数据类型,关键词:struct
eg:申明一种类型 struct Person
3.文件:
(1.打开文件):
2、3、4:
心得:
经过几天的复习,把C语言系统地复习了一遍,不仅让我捡回了失去的知识,而且加深了知识点印象以及学习了一些新的知识点,最重要的锻炼了自己编程的能力,以前差不多都是理论学习,很少逼着自己去实际编写代码,现在除了上课之外每天晚上大概都有五六个小时用在了编程上,顶不住哦,但过来了收获很大,感jio不亏怕?