美文网首页C语言#语法程序员
三分钟带你了解掌握C语言数组、指针函数!小白新手福音

三分钟带你了解掌握C语言数组、指针函数!小白新手福音

作者: 小辰带你看世界 | 来源:发表于2018-02-20 14:13 被阅读28次

    C语言是面向过程的,而C++是面向对象的

    C和C++的区别:

    C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。

    C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。

    C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。

    1,数组指针与指针数组

    数组指针

    数组指针实质上还是指针,不同之处在于它是指向数组的,多用于二维数组

    如下例,int (p) [3]就是一个数组指针,可以指向第二维维度为3的二维数组,并给出了两种同样功能的初始化方式;p++后,则由arr[0]变为指向arr[1];同时,二维数组解引用时需要 ’ * * ’

    小编推荐一个学C语言/C++的学习裙【 二六三,六八八,二七六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

    #include int main(){ int arr[2][3] = {{1,3,5},{2,4,6}}; // int (*p)[3] = &arr[0]; int (*p)[3]; p = arr; printf("*p = %d. ",*(*p)); p++; printf("*p = %d. ",**p); return 0;}12345678910111213

    指针数组

    指针数组,比如int *p [3] 实质上就是定义了三个指针,分别为p[0],p[1],p[2],可以将它们拿来单独使用

    如下例:

    #include int main(){ int i=0; int arr[3]= {1,3,5}; int *p[3] ; p[1] = &arr[0]; p[2] = &arr[1]; p[3] = &arr[2]; for (i=1; i<4; i++) printf("p[%d] = %d ",i,*p[i]); return 0;}123456789101112131415

    指针函数与函数指针

    指针函数

    本质是一个函数,它的返回值类型是一个指针

    如下例:

    #include int* fun(int *a){ return a;}int main(void){ int a = 3; printf("%d", *(fun(&a))); return 0;}12345678910111213

    函数指针

    本质是一个指针,这个指针指向的是一个函数

    #include //比较两个数的大小 int func (int a,int b){ if (a

    其中,定义函数指针时,要注意类型与函数的类型一定要匹配,比如上例,函数是int func (int a,int b),其中,func是函数名,int (int a,int b)是函数的类型名;所以定义指向它的指针时,类型名要一致,也是int (int a,int b),(*p)将p定义为一个指针,根据C语法规则,写为int ( *p) (int a,int b),其中,a,b为形参,不写也可以。

    相关文章

      网友评论

        本文标题:三分钟带你了解掌握C语言数组、指针函数!小白新手福音

        本文链接:https://www.haomeiwen.com/subject/pzrgtftx.html