第五次作业

笔记

 

 课本例题

 存在的问题

1.指针数组可不可以先声明,再初始化?比如,

const char *strings[7] = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};

把上述写成

const char *strings[7]; 

strings = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}; 

这样改写是不行的,因为数组名是一个指针常量,也就是第一个元素的地址,它的类型取决于数组数据元素的类型。 我这样赋值相当于修改指针常量,所以报错。如果想对指针数组赋值,需要用一个for或while循环。

2.为什么指针可以指向函数?函数也是占有内存空间的?

函数作为一段程序,在内存中也要占据部分存储空间,它也有一个起始地址,即函数的入口地址。函数有自己的地址,那就好办了,我们的指针变量就是用来存储地址的。因此,可以利用一个指针指向一个函数。其中,函数名就代表着函数的地址。

 

 

原文地址:https://www.cnblogs.com/zhuy-j/p/12684643.html