C语言编程基础:指针数组与数组指针

(1)、C语言是面向过程的,而C++是面向对象的                                                                                                                           (2)、C和C++的区别:C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。                                                                                                                                                                                 (3)、C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。

C语言编程基础:指针数组与数组指针_第1张图片

这些是C/C++能做的

服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等

C语言编程基础:指针数组与数组指针_第2张图片

一、指针数组

        在这一节中我们来学习一个数组,这个数组比较特殊,也比较普通。说它特殊是因为这个数组是指针的数组,也就是说我们有一个数组,这个数组里存放的变量类型是指针型变量;说它普通是因为数组变量其实与其它普通变量没有什么区别,指针变量就是一种可以存放内存地址的变量,所以它们也可以被定义成一串连续的变量集合,这个集合就是指针数组。例如,我们可以定义一组变量,这组变量就是一个数组,共有4个元素,而每一个元素都是一个指向int型变量的指针:

C语言编程基础:指针数组与数组指针_第3张图片

在这里我们要注意一下运算符的优先级,由于 * 的优先级比 [] 的优先级低,所以整个表达式中p要先与[4]做结合表示的是一个数组,再与 * 结合表示每一个数组元素的类型是一个指针变量。我们再来看一看多维数组与多维指针数组:

C语言编程基础:指针数组与数组指针_第4张图片

                     值得注意的地上是多维数组表示的是整型多维数组表示的是很数组中每一个元素的类型都 是型型的变量,而多维指针数组中表示的是数组中每一个元素的类型都是指针型变量。而在循环赋值时我们将数组指针数组中的每一个指针都指向了整型数组中的每一个元素。

二、指针数组与数组指针

        接下来我们来看一看一个非常容易混淆的两个概念:“指针数组”与“数组指针”。

指针数组:表示的是一个数组,数组中每一个变量都是指针型变量;

数组指针:表示的是一个指针类型的变量,这个指针变量指向的是一个数组。

        我们用一个例子来仔细对它们的区别做说明:

C语言编程基础:指针数组与数组指针_第5张图片

对于上面程序中两种不同的指针数组和数组指针请大家一定要分清。int *p[2][3];所表示的是一个二维数组,数组的每一个元素都是一个指针变量。也就是说,这是一个具有6个指针型变量的数组;而int (*q)[3] = array;所表示的是数组指针,注意:这里只定义了一个指针型变量q,它指向一个二维数组array。而对于q来说,它告诉编译器,这是一个指针,这个指针指向一个具有3列的数组变量。

        关于这两个概念不太容易理解,请大家自己动手编写相关的程序,通过编写程序、查看其运行结果来慢慢消化这两个概念,并熟练掌握它们的原理与用法。

C语言编程基础:指针数组与数组指针_第6张图片
C语言编程基础:指针数组与数组指针_第7张图片
C语言编程基础:指针数组与数组指针_第8张图片
C语言编程基础:指针数组与数组指针_第9张图片

你可能感兴趣的:(C语言编程基础:指针数组与数组指针)