肥西做网站,百度怎么推广自己的视频,网站在百度无法验证码怎么办啊,校园网站建设资金来源有目录
一、指针数组
1.1.什么是指针数组
2.2. 格式
2.3.存储
2.4.与字符型二维数组相比
2.5.什么时候使用指针数组
2.6.练习
二、数组指针
2.1.什么是数组指针
2.2.格式 2.3.一维数组
2.3.特点
2.4.什么时候使用
三、指针和数组的关系
3.1.一维数组和指针 … 目录
一、指针数组
1.1.什么是指针数组
2.2. 格式
2.3.存储
2.4.与字符型二维数组相比
2.5.什么时候使用指针数组
2.6.练习
二、数组指针
2.1.什么是数组指针
2.2.格式 2.3.一维数组
2.3.特点
2.4.什么时候使用
三、指针和数组的关系
3.1.一维数组和指针
3.2. 二维数组和指针
四、二级指针
4.1.含义
4.2.实际的二级指针
4.3.什么时候使用
五、总结 一、指针数组
1.1.什么是指针数组 指针数组是数组 而数组中的每个元素是指针
2.2. 格式
int *arry[5];
2.3.存储 由于指针数组的类型为指针int *因此指针数组的每个元素占 8个字节。 int *a[5];故此该指针数组占右8*540字节的空间。
2.4.与字符型二维数组相比 字符型二维数组用来存储字符串数组 指针数组用来操作字符串数组
2.5.什么时候使用指针数组 操作字符串数组时
2.6.练习 一起来加深一下指针数组的印象 1.定义一个指针数组并初始化为12个月英文字符串首地址,从终端输入1 - 12对应的数字, 打印出其对应的英文形式。
#include stdio.hint main(void)
{char *p[12] {Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec};int n 0;scanf(%d, n);printf(%s\n, p[n-1]);return 0;
} 2.再次练习终端接受字符串使用指针数组对字符串数组的元素进行冒泡排序并打印结果并使用数组的方法打印字符串。
#include stdio.h
#include string.hint main(void)
{char str[5][32] {0};char *p[5] {str[0], str[1], str[2], str[3], str[4]};char *q NULL;int i 0;int j 0;for(i 0; i 5; i){gets(str[i]);}for(j 0; j 4; j){for(i 0; i 4 -j; i){if(strcmp(p[i], p[i1]) 0){q p[i];p[i] p[i1];p[i1] q;}}}printf(-----------------------------------\n);for(i 0; i 5; i){printf(%s\n, p[i]);}printf(-----------------------------------\n);for(i 0; i 5; i){printf(%s\n, str[i]);}return 0;
} 你会发现操作字符串时使用指针数组很方便在使用冒泡排序时原数组方法它要交换字符串来实现而当字符串过大过多时效率很底而指针数组在活得元素组字符串的地址后交换时只需要交换地址就行效率很高。
二、数组指针
2.1.什么是数组指针 数组指针是指针,指针指向一个数组二级指针
2.2.格式
int *p[5] NULL; 2.3.一维数组 一维数组的数组名是指向第一个元素的指针常量
int a[5] {1,2,3,4,5};a a[0] 一般情况可以把数组名a理解为int *但是存在两种特殊的情况不可以这么理解 ·sizeof运算时 sizeof(a) 20 sizeof(int *) 8 ·运算时 a int(*) [5](对一维数组取会升级为数组指针) int * int **
2.3.特点 1.对一维数组得到数组指针 2.数组指针取*操作类型不变值降为指向数组第一个元素的指针 3.数组指针的变化量为整个数组大小
2.4.什么时候使用 二维数组传参数时传数组指针和长度
int fun(int (*parry)[3],int len);int a[2][3] {0};fun(a, 2);
三、指针和数组的关系
3.1.一维数组和指针
int a[5] {1,2,3,4,5};int *p NULL;p a; / p a[0]; 访问第n个元素的方式
a[n] *(an) *(pn) p[n]
3.2. 二维数组和指针
int a[2][3] {1,2,3,4,5,6};int *p NULL;int (*p)[3] NULL;p a[0][0];p a[0];q a; 由于a[0]是由上图中的a[0][0]、a[0][1]、a[0][2]三个元素组成的一维数组又有一维数组的数组名式是指向第一个元素的指针故此p a[0]; 由于a[0][0]是a[0]数组的第一个元素故此p a[0][0]; 又由于a是由a[0]和a[1]两个一维数组组成的一维数组又有一维数组的数组名式是指向第一个元素的指针故此q a; 现在要访问第m行n列的元素可以怎样访问
a[m][n]*(a[m]n)*(*(am)n)*(pm*Nn)*(q[m]n)*(*(qm)n)q[m][n]
四、二级指针
4.1.含义 指向指针变量的指针
4.2.实际的二级指针 1.函数体内想修改函数体外指针变量值的时候,传指针变量的地址即二级指针 2.指针数组的数组名是指向数组第一个元素的指针,即指向指针的指针也就是二级指针
4.3.什么时候使用 1.函数体内想修改外部指针变量值传入二级指针
#include stdio.hint fun(char **pptmp)
{*pptmp hello world;return 0;
}int main(void)
{char *p NULL;fun(p);printf(p %s\n, p);return 0;
}
结果为p hello world 2.指针数组的数组名是二级指针
五、总结 2024年7月24日已经学习了12天啦C语言的学习也接近尾声了。今天主要学习了指针数组、数组指针、二级指针时指针中算是难的部分也是C语言中算是的难的部分了。努努力争取今天消化了。 加油