首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言指针对10个排序

例31:C语言指针方法对10个整数按由大到小顺序排序。 解题思路:在主函数中定义数组,用来存放10个整数,定义int *型指针变量p指向a[0],定义函数sort将数组中的元素按由大到小排序。... 0;//主函数返回值为0  } void sort(int x[],int n)//自定义排序函数  {   int i,j,k,t;//定义整型变量    for(i=0;i<9;i++)//外层for...读者需要注意上述小林scanf函数的逗号,注意是英文逗号: scanf("%d,",p++); 在上一节小林说过,给指针变量赋的是地址,如下: int i,*p,a[10]; p=a; 但上述代码中却是这样赋值...: int i,*p,a[10]; p=&a; 是因为我定义的a就是数组,在C语言中,数组名可以表示地址,因此不用再加取地址符&,读者需要了解。...C语言 | 指针对10个排序 更多案例可以go公众号:C语言入门到精通

2.7K2320
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C语言指针做函数参数,指针做函数返回类型

    指针做函数参数: 在C语言中,函数的参数不仅可以是整数、小数、字符等具体的数据,还可以是指向它们的指针。...指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以访问到函数外部的数据,并且这些数据不会随着函数的结束而被销毁。...而数组是一系列数据的集合,数据的数量没有限制,可能很少,也可能成千上万,对它们进行内存拷贝有可能是一个漫长的过程,会严重拖慢程序的效率,为了防止技艺不佳的程序员写出低效的代码,C语言没有从语法上支持数据集合的直接赋值...return strl1; } else { return strl2; } } 指针作为函数返回值时需要注意的一点是,函数运行结束后会销毁在它内部定义的所有局部数据...,包括局部变量、局部数组和形式参数,函数返回指针请尽量不要指向这些数据,C语言没有任何机制来保证这些数据会一直有效,它们在后续使用过程中可能会引发运行时错误 , 但是,这里所谓的销毁并不是将局部数据所占用的内存全部抹掉

    2.6K20

    C语言指针(野指针)

    2:如何规避野指针 1.1:指针变量的初始化 2.2:指针越界访问 3.3:指针指向的空间如果我们还回去的话,就把指针指针置为NULL  4.4:指针使用之前检查有效性 1:什么是野指针?...指针越界也会导致野指针问题,这里解释下:就是当你指针指向的范围超过数组名范围时,那么那个指针就是野指针了。...2:如何规避野指针 1.1:指针变量的初始化 int a = 10; int* pa = &a; //指针变量的初始化 指针常见错误 引用未初始化的指针变量 试图引用未初始化的指针变量是初学者最容易犯的错误...空指针不应与未初始化的指针混淆:保证空指针与指向有效对象的任何指针进行比较。但是,根据语言和实现,未初始化的指针可能没有任何此类保证。它可能与其他有效指针相等; 或者它可能比较等于空指针。...NULL printf("%d\n",pa); 4.4:指针使用之前检查有效性 当你指针变量不可以的时候就把它设置成NULL,当你指针变量可以的时候就不是NULL。

    2.6K20

    C - 指针C语言指针的总结

    C语言指针的总结 1. 变量 不同类型的变量在内存中占据不同的字节空间。 内存中存储数据的最小基本单位是字节,每一个字节都有一个内存地址,这个地址是一个十六进制的。...什么是指针:变量的地址叫做指针指针就是地址,地址就是指针。 下面通过一张图可以更直观的理解内存中的地址 ? 内存中的地址演示图 2. 指针 指针C语言的灵魂。指针变量占据8个字节。...取出变量的地址,&运算符 %p输出变量的地址。 变量的地址就叫做指针,我们可以使用一个指针变量来存储变量的地址。...int *p1, * p2, * p3; 野指针 我们声明一个指针变量,如果没有为其初始化,那么这个时候这个指针变量中是有值的,是垃圾值,随机。...// 这个指针只能指向没有返回值,并且没有参数的函数。

    4.2K81

    C语言指针

    二、指针的定义 三、指针的初始化 四、指针运算符 五、指针的用途举例 六、关于指针的疑问 指针C语言中非常重要的数据类型,如果你说C语言中除了指针,其他你都学得很好,那你干脆说没学过C语言。...,和与差都由同一个函数计算并返回出来。和是函数的直接返回值,差是通过函数的第3个指针参数间接返回。 因此有了指针,我们可以让函数有"无限个"返回值。...* 如果我改一下第5行的代码,一个本应该指向int类型变量的指针p,指向char类型的变量c int *p = &c; 我们再来看一下输出: ? ,c的原值是1,现在取出来却是513,怎么回事呢?...1> 最初的时候,我们char *p指向变量c。...当利用*p来获取变量c的值时,由于指针p知道变量c是char类型的,所以会从ffc3这个地址开始读取1个字节的数据:0000 0001,转为10进制就是1 2> 后来,我们int *p指向变量c

    3.3K60

    C语言——指针

    指针c语言中的一个重要概念,也是C语言的一个重要的特色,正确而灵活地运用它,可以使程序简洁,紧凑,高效,每一个学习和使用c语言的人,都应当深入了解地学习和掌握指针,可以说,不掌握指针就是没有掌握C的精华也可以说...指针C语言的灵魂(doge) 由于通过地址能找到所需的变量单元,可以说,地址指向变量单元,打个比方,一个房间的门口挂了一个房间号2008,这个2008就是房间的地址,或者说,2008"指向"...例如:  通过指针引用数组 所谓数组元素的指针就是数组元素的地址 可以一个指针变量指向一个数组元素。...3.指针指向空间释放即使置NULL 4.避免返回局部变量的地址 5.指针使用之前检查有效性 指针运算 小时候我们就知道1+1等于几 那我问你如果是指针加1的话 加的是那个数字吗 ?...16进制的C的10进制是12,所以q+1和q相差4  p是整型指针相当于sizeof(int)=4 q是字符型指针相当于sizeof(char)=1; 以上就是我归纳指针的一些小结 如果能帮助友友们 -

    2.3K20

    C语言_初识C语言指针

    存储地址一般 十六进制 表示,而每一个 存储器地址 中又存放着一组二进制(或十六进制)表示的,通常称为该地址的内容。...为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址 编号 = 地址 = 指针 指针变量 = 变量 = 存放地址的变量 ---- 一、指针 … 一个内存单元多大比较合适.../0 32位机器,上面有32根地址线 2的32次方个字节的空间 - - - 4,294,967,296 Byte — 4GB ---- 通过pa里存放的a的地址找到a ---- 三、指针变量的大小...指针变量是用来存放地址的 32位机器上:地址是32个二进制位,这个地址要存储的话要4个字节,所以在32位机器上,指针变量的大小是4个字节。...64位机器上:地址是64个二进制位,这个地址要存储的话要8个字节,所以在64位机器上,指针变量的大小是8个字节。

    19030

    C语言: 指针

    目录 概念: 指针的类型 指针的解引用 野指针指针的成因 空指针 指针与数组 指针在数组中的使用: 二级指针 ---- 概念: 在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址...指针的类型与指向的目标的类型一致,指针指向的是目标的地址。...野指针 概念: 野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)指针变量 在定义时如果未初始化,其值是随机的,指针变量的值是别的变量的地址,意味着指针指向了一 个地址是不确定的变量...1、指针初始化  2、小心越界访问 3、指针指向的空间释放 4、使用之前检查有效性 空指针 即是将指针置空 int* p = NULL; 指针与数组 #include <stdio.h...0; } 指针指向的是目标变量的地址,那么二级指针指向的就是指针的地址。

    2K70

    C语言指针

    学习 C 语言指针既简单又有趣。通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C 程序员,学习指针是很有必要的。...指针变量就是一种变量, 和其他种类的变量类似, 但指针和其他变量又有区别. 首先C语言作为一种类型语言, 每个变量都会有几个属性. 变量名称. 变量类型. 变量的值....Address stored in ip variable: bffd8b3c Value of *ip variable:20 类型 对于C语言来说, 搞清楚变量的类型相当重要, 涉及到指针的时候就更加重要...整个来说: next是一个指针, 指向一个函数, 函数的返回值也是一个指针, 指向一个类型为char的常量指针. C语言为类型语言, 即每个变量都有类型....只要类型确定, 那么便可以sizeof计算类型占用的内存大小, 这个是编译阶段便可以确定的.

    2.7K20

    C语言 | 指向指针指针对n个整数排序

    例82:C语言指向指针指针的方法对n个整数排序并输出;要求将排序单独写成一个函数;n个整数在主函数中输入,最后在主函数中输出。...解题思路:读者看着道题的时候,首先要观察一下有什么规律,然后指向指针指针在上一道练习题中已经有了铺垫,读者可以联系上一道题去熟练使用指向指针指针。...C语言源代码演示: #include//头文件  int main()//主函数  {   void sort(int **point,int number); //sort排序函数声明...0;i<number;i++)   {     printf("%d ",*pstr[i]);//输出排序后的结果    }   printf("\n");//换行    return 0;//主函数返回值为...以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~ C语言学习路线     C语言开发工具 更多案例可以go公众号:C语言入门到精通

    1.5K22

    C语言 | 指向指针指针

    “要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人…万中无一” ——包租婆 这道理放在C语言学习上也一并受用。...在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历的是日积月累的学习。 那么如何学习呢?当然是每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...例82:C语言指向指针指针的方法对n个整数排序并输出;要求将排序单独写成一个函数;n个整数在主函数中输入,最后在主函数中输出。...C语言源代码演示: #include//头文件 int main()//主函数 { void sort(int **point,int number); //sort排序函数声明...0;i<number;i++) { printf("%d ",*pstr[i]);//输出排序后的结果 } printf("\n");//换行 return 0;//主函数返回值为

    3K32

    C语言指针(三)函数指针

    函数指针 在我们定义函数的时候,编译器也会在内存空间给函数开辟一个内存,而该内存的首地址就是函数的内存地址,而函数指针就是指向该内存地址的。...3.1 函数 众所周知,C语言是面向过程的语言,或者称函数式编程。 而在C语言中,函数也确实起了很大的作用,在C语言的学习中,你见过最多的可能就是main函数,同时也是你第一个见得函数。...我们来看看这个main函数 int main(){return 0;} 我们把他浓缩成一行,比较好瞅 ❝ int是返回类型,每个函数都要有这个,不返回东西的函数的返回值类型为void main是函数名,...; return 是函数结束的关键字,返回值为0表示程序正确运行,为其他表示有其他异常 切记main函数不要void main(){},这个真的很重要 ❞ 3.2 指向函数的指针 见名知意,这个东西也是一个指针...num1, int num2); // 定义一个函数,有两个整型参数 因为运算符优先级的存在,所以我们需要对变量名与*进行首先运算 使用: #include /* 定义一个两求和函数

    2K00

    C语言C语言数组和指针

    ---- 友情提醒:本文可能是全csdn最详细的指针内容了,希望你能用心读下去 前言 接下来的讲解部分是指针的进阶,包含多种指针以及对应的数组,这部分章节对我们来说很重要,也是c语言中的重点模块儿,重要性不言而喻...(c/c++会把常量字符串储存到单独的一个内存区域中) 当这两个指针指向同一个常量字符串时,实际上就是指向同一块儿地址**(指针就是地址,地址就是指针)** 2.数组指针 2.1数组指针的定义 1.数组指针嘛...,这个函数的返回类型是int型的指针,函数的参数是两个int 4.指向函数指针数组的指针 4.1概念解释: 这里的这个指针其实也就是个地址而已** 永远记住指针就是地址,地址就是指针** ,那这个地址究竟是什么呢...我们直接大白话给他翻译成通俗易懂的语言。怎么样就是回调函数呢?就比如你现在有一个可以实现两之和功能的函数Add,你明明可以在main函数里面直接调用这个函数,给他传上两个整数的参数,让他返回和的值。...其实就是你稍微拐了个弯儿,你把这个函数作为参数传递给一个Calc函数,然后Clac函数的参数被设计成为一个指向Add函数的函数指针,然后我们在Calc函数中,接收Add函数的函数指针p(假设指针的名字是

    64.7K37

    C语言指针进阶

    一、指针变量 指针变量有字符指针变量,数组指针变量和函数指针变量 1、字符指针变量 char* 叫做字符指针 一般这么来使用:通过指针存储指针后解引用访问 int main() { char c =...C++会把常量字符串存储到单独的⼀个内存区域,当几个指针指向同一个字符串的时候,他们实际会指向同一块内存。...②数组指针变量的初始化 int arr[10] = {0}; int(*p)[10] = &arr; 数组地址来初始化,注意:&arr来初始化 3、函数指针变量 ①函数指针变量的地址 每一个数据都有自己的地址...顾名思义,就是储存函数指针的数组 这样来定义: int (*parr1[5])(); 最前面自然是返回的数据类型,最后的括号里是函数的输入数据,[5]代表数组中有5个函数指针括号把*parr1[...; } else { printf("请重新输入\n"); } } while (input); return 0; } 四、typedef 关键字讲解 typedef 是C语言中用来重命名的一个关键字

    6910

    C语言指针)2

    既然指针变量的大小都是一样的,与指针的类型没有关系,那我们char *类型来接收a的地址按理说应该也可以,而且&a取出来的地址都是首地址(一个内存空间,大小是1个字节),好像没什么问题。...其中的原因还是和3.1中一样,我们再来通过下面的图解释一下: 可以理解为他们走的格不一样,一个格子就是一个内存单元也就是1个字节空间,a和pa一个是int类型一个是int *类型,所以它们走...虽然能正常运行,但是编译器也有相应的警告: 但是我们void *去接受就没有任何问题: 虽然void *类型的指针不能直接进行解引用操作,也不能 +- 整数的操作,...但是当我们不知道别人给我们传的地址是什么类型的时候,我们就可以放心地去void *来接收,这就是它的作用。...既然指针的解引用可以间接地去改变const修饰的变量的值,那我们干脆把指针变量也const修饰,因为指针变量也是变量嘛。

    8910

    C语言指针)5

    7.指针数组来模拟二维数组 指针数组来表示二维数组是非常适合的,因为二维数组的每一行就像一个一维数组,这个一维数组也是可以通过指针来访问。...上面虽然我们没有定义二维数组,但我们指针数组的方法模拟实现了二维数组。...占位符 %s,而使用 %s 打印字符串的时候,只需要提供首字符的地址就行。...C/C++会把常量字符串存储到单独的一个内存区域,当几个指针指向同一个字符串的时候,它们实际会指向同一块内存。...所以我们还需要简单调整一下,将数组名和代表指针的 “ * ” 括号括起来,使它们两个结合,就得到了正确的数组指针的写法:int (*arr)[10],数组指针类型就是:int (*)[10]。

    5910

    C语言——指针(四)

    ,其实字符串也可以同样的形式来查找字符串中的内容。...例如,我们&来得到数组的地址,然后再赋值给数组指针: int arr[10] = {0}; int(*p)[10] = &arr; //这样我们就通过&arr得到了数组的地址,然后复制给了p指针变量...数组名是数组首元素的地址,那么→二维数组的数组名也就是二维数组的第一行这个一维数组的地址 从上面我们可以推断: 二维数组传参的本质是:传递这个二维数组的第一行这个一维数组的地址 所以,二维数组传参的时候,也可以数组指针的形式来书写...三,函数指针变量 函数指针变量就是用来存放函数的地址的指针变量 有了函数的地址以后,我们就可以通过地址来调用函数 1,函数的地址 函数有没有地址?...我们做个测试 我们发现:1,函数也是有地址的,可以 &函数名 来获得,2,函数名表示的是函数的地址 2,创建函数指针 函数指针的写法与数组指针类似,下面进行函数指针创建的展示 void test

    9410

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券