导图社区 C语言程序设计(重难点)——数组与指针
本部分内容省级示范课《C语言程序设计》的部分内容,从全新的视角阐述了数组与指针的关系,使难点不再难。
联网双创大赛项目基本思路思维导图。导图包括学生打游戏给社会带来极大负担、我们发现无法有效控制的原因是存在n个问题没有解决、该产品的应用推广情况、我们为保护该产品做了哪些工作、公司进展和规划、公司能为社会带来哪些效益等内容。
网上一大堆的C语言导图,但都是知识点的罗列,尤其是数组和指针的内在关系,都没有说清楚。本导图首次阐述了数组首地址、数组地址的区别,及其和指针的内在逻辑。这是最好的C语言程序设计思维导图,既适合新手入门,也适合高手作为资料查询。
本思维导图源自省级教坛新秀的省级示范课内容。首次明确了数组首地址和数组地址的定义,并详细比较其内涵和用法。从全新的角度阐述了数组、指针、函数的数据类型和内在关系。把C语言的最难点史无前例的用2个图清晰的展示出来。指针因为本图而不难!
社区模板帮助中心,点此进入>>
《影响力》思维导图
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
数组与指针
预备知识
变量的指针/地址
变量名前加 &
例:
1||| int var = 0; 变量var的地址或指针为:&var
2||| int a1d[10] = {0}; 数组a1d的地址为:&a1d
获得地址/指针中的数据
地址/指针前加 *
例
int var = 123; int *p = &var; int tmp = *p; 获得指针p中的内容123,赋值给tmp
变量
dataType variableName [= initializedValue];
1||| int var = 0;
2||| char c = 'a';
数组
由一组数据类型相同的数据构成的集合。
1||| 数值数组:int num_array[10] = {0};
2||| 字符数组:char char_array[10] = {'a'};
3||| 二维数组:int a2d[3][4] = {{0}};
4||| 指针数组:
5||| ......
一维数组 int a1d[10] = {0};
由一组数据类型相同的变量构成的集合
数组元素:a1d[id]
a1d[id] 用法与 var 完全相同
数组名:a1d
数组首元素的地址,简称首地址。
类型:int *
数组地址
&a1d
类型:int (*)[]
注:数组首地址 ¹ 数组地址。
例题
子主题
二维数组 int a2d[3][4] = {{0}};
由一组数据类型相同的一维数组构成的集合
数组元素:a2d[id1][id2]
a2d[id1][id2]用法与 var 完全相同
由一维数组构成
a2d[0]、a2d[1]、a2d[2]的用法与a1d完全一致
数组名:a2d
数组首元素的地址
二维数组的首元素是一维数组,一维数组地址类型(*)[]
例:int (*p)[10] = a2d;
&a2d
类型:int (*)[][]
指针数组 int *p[4] = {a2d[0],a2d[1],a2d[2],a1d};
由一组指针构成的集合
数组元素p[0],p[1],p[2],p[3],其用法和 &var 完全相同
数组名:p
类型:int **
首元素的内容为指针,所以是指针的指针,即双重指针
例:int **p2 = p;
&p
类型:int *(*)[];
int *(*p3)[4]=&p;