C博客作业05-指针

1.本章学习总结(3分)

1.1 指针定义、指针相关运算、指针做函数参数。

1.1.1指针与指针变量的概念。

(1)指针:内存中的一个存储单元的地址
(2)指针变量:是一个能存放地址值的变量。

1.1.2指针变量的定义。

类型名  指针变量名类型说明中可取C语言的有效类型, 表示为指针型变量。如:char  c1,c2; 表示c1与c2是指针变量,其基类型是字符型。注意:指针的基类型与其所指向的变量的类型要统一。

1.2 字符指针

指针如何指向字符串
将指针指向该字符串的首地址即可。
比如:
char a[] = "abc";

1.3 指针做函数返回值

具体格式是什么,注意事项。
申明:

void a(int *p);
使用:

a(p);
函数:

int a(int *p)
{

return p;
}
注意事项:
用指针作为函数返回值时需要注意的一点是,函数运行结束后会销毁在它内部定义的所有局部数据,包括局部变量、局部数组和形式参数,函数返回的指针请尽量不要指向这些数据

1.4 动态内存分配

举例为多个字符串做动态内存要如何分配。
原因:
1.可以申请动态空间,节省内存;
2.便于储存大型对象;
3.传递指针可以不改变原来的值;
堆区和栈区区别:
1、栈区(stack)— 由编译器自动分配释放
2、堆区(heap) — 一般由程序员分配释放

1.5 指针数组及其应用

int a[10][5];
int (p)[5];//每行5个元素的数组指针。
p=a;//把p指向a。

1.6 二级指针

A(即B的地址)是指向指针的指针,称为二级指针,用于存放二级指针的变量称为二级指针变量。
1.7 行指针、列指针
行指针:指的是一整行
列指针:指的是一行中某个具体元素。
可以将列指针理解为行指针的具体元素,行指针理解为列指针的地址。
那么两个概念之间的具体转换是:
*行指针----列指针
&列指针----行指针
a即是它的行指针,a+0表示第0行的地址,a+1表示第1行地址…
或者可以说成&a[0]表示第0行的地址,&a[1]表示第1行的地址…
那么a[0]+0,a[0]+1…就表示第1行第1列的地址,第1行第2列地址…
a[1]+0,a[1]+1就表示第2行第1列地址,第2行第2列地址…

2.PTA实验作业(7分)

2.1 题目名1(2分)

选择一题难度较大的题目。请认真写伪代码整理解题思路。自己代码和同学代码比较,说明各自代码特点。

2.1.1 伪代码

定义一个二维数组str1[4][20],输入诗
定义一个一维数组str2[10],存放诗的尾
判断每一行诗的长度,将最后两个字符输入到str2中,下标每次+1
最后在str2的末尾放结束标志符
输出str2

posted @ 2020-12-27 21:08  曾理  阅读(104)  评论(0编辑  收藏  举报