返回指针值的函数

一般带回指针值的函数,定义形式为:

  1. int *a (int x, int y);

看这个经典案例:

  1. #include <stdio.h>
  2.  
  3. int main(int argc, char const *argv[])
  4. {
  5. double score[][] = {{60.0, 70.0, 80.5, 20.1}, {60.0, 70.0, 80.5, 21.1}, {60.0, 70.0, 80.5, 22.1}};
  6. double *search(double(*pointer)[], int n);
  7. double *p;
  8. int i, m=;
  9.  
  10. p = search(score, m);
  11. for (i = ;i < ; i++)
  12. {
  13. printf("%f\t", *(p + i));
  14. }
  15. printf("\n");
  16. }
  17.  
  18. double *search(double(*pointer)[], int n)
  19. {
  20. double *pt;
  21. pt = *(pointer + n);
  22. return pt;
  23. }

指针函数和函数指针的区别

1. 指针函数是指带指针的函数, 即本质是一个函数

2. 函数指针是指向函数的指针变量, 因而函数指针本身首先是指针变量, 只不过该指针指向函数

指针数组

概念:

一个数组,若其元素均被指针类型数据,称为指针数组, 也就是说,指针数组中的每一个元素

都相当于一个指针变量。

一维指针数组的定义形式为: int *name[4];

  1. #include <stdio.h>
  2.  
  3. int main(int argc, char const *argv[])
  4. {
  5. int a[] = {, , , , };
  6. int *name[] = {&a[], &a[], &a[], &a[], &a[]};
  7. int i;
  8.  
  9. for (i = ; i < ; i++)
  10. {
  11. printf("%d ", *name[i]);
  12. }
  13. printf("\n");
  14. }

指向指针的指针

怎么定义一个指向指针数据的指针变量呢?

形式如: char **p;

p前面有两个*号, *运算符的结合性是从右到左, 因此**p相当于*(*p), 显然会*p是

指针变量的定义形式。如果没有最前面的*, 那就是定义指向字符数据的指针变量。

现在它前面有有一个*号, 表示指针变量p是指向字符指针变量的。*p就是p所指向的另一

个指针变量

代码:

  1. #include <stdio.h>
  2.  
  3. int main(int argc, char const *argv[])
  4. {
  5. char *name[] = {"abc", "efg", "higk"};
  6. char **p;
  7. int i;
  8.  
  9. for (i=; i<;i++)
  10. {
  11. p = name + i;
  12. printf("%s\n", *p);
  13. }
  14. }

总结

c指针 --笔记2返回指针值的函数的更多相关文章

  1. 剑指offer笔记面试题1----赋值运算符函数

    题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数. class CMyString{ public: CMyString(char* pData = nullptr); CMyS ...

  2. 12-返回指针的函数&&指向函数的指针

    前言 接下来我只讲指针的最常见用法,比如这一章的内容----返回指针的函数 与 指向函数的指针   一.返回指针的函数 指针也是C语言中的一种数据类型,因此一个函数的返回值肯定可以是指针类型的. 返回 ...

  3. (C/C++学习笔记) 十二. 指针

    十二. 指针 ● 基本概念 位系统下为4字节(8位十六进制数),在64位系统下为8字节(16位十六进制数) 进制表示的, 内存地址不占用内存空间 指针本身是一种数据类型, 它可以指向int, char ...

  4. 返回结点值为e的二叉树指针

    题意为,如果二叉树某结点的值为e(假定是整型二叉树),返回这个结点的指针.初看这道题,联想到二叉树可以很简单的遍历,直接返回这个指针不就行了吗?如下图所示,假如要返回值为3的结点指针: 设计好了一个函 ...

  5. Go语言学习记录之一(返回指针与返回值的区别)

    先来一个返回指针的测试,结果跟想象一样 type A map[int]string type B struct { A c int } func main() { b := B{make(A), 10 ...

  6. Android JNI编程(三)——C语言指针的初步认识、指针变量、互换两个数、函数返回多个值

    版权声明:本文出自阿钟的博客,转载请注明出处:http://blog.csdn.net/a_zhon/. 目录(?)[+] 一.什么是指针? 简单来说: 指针就是内存地址      内存地址就是指针. ...

  7. c++函数参数或返回值为函数指针

    C++中函数指针的形式为:返回值类型 + 参数类型,函数没有值类型,但是却可以声明函数的指针,因为函数是可寻址的,存放在内存中的代码段,可以从指针访问. 函数指针可以声明为: void (*pF)(v ...

  8. 【学习笔记】【C语言】返回指针的函数

    函数如果带*的返回的就是指针 char *test(){ } #include <stdio.h> char *test(); /* 返回指针的函数 */ int main() { cha ...

  9. C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com

    原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...

随机推荐

  1. python2和Python3异同总结

    1. python3 异常不再接收逗号(,)作为参数: ## python3 中这样可以正常运行 try: print("在这里执行的代码,有异常进入except") except ...

  2. Android getWindow().setFlags方法

    //设置窗体全屏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams ...

  3. 06Vue.js快速入门-Vue组件化开发

    组件其实就是一个拥有样式.动画.js逻辑.HTML结构的综合块.前端组件化确实让大的前端团队更高效的开发前端项目.而作为前端比较流行的框架之一,Vue的组件和也做的非常彻底,而且有自己的特色.尤其是她 ...

  4. javascript中json对象长度

    JSON中无法使用length去获取长度,length只针对数组对象适用: var data={"showdata":{"中国人民大学":{"2013 ...

  5. JAVA-JSP内置对象之response对象实现页面自动刷新

    相关资料:<21天学通Java Web开发> response对象 实现页面自动刷新1.可以通过response对象的addIntHeader()方法添加一个标题为Refrsh的标头,并指 ...

  6. 多 LDAP 目录服务器的 FileNet P8 系统介绍和配置实例

    摘抄笔记:http://www.ibm.com/developerworks/cn/data/library/techarticle/dm-1312multipldap/ 多 LDAP 目录服务器的 ...

  7. 2017 码云最火爆开源项目 TOP 50,你都用过哪些

    本文转自:https://share.html5.qq.com/fx/u?r=JdjvzwC 2017 年度码云热门项目排行榜 TOP 50 出炉啦!我们根据所有开源项目在码云的用户关注度.活跃度.访 ...

  8. 在分布式系统里看CAP定理

    本文转自:http://zhuanlan.51cto.com/art/201703/534587.htm 计算机界有很多高大上又难于理解的术语,CAP就是其中之一, 什么一致性(Consistency ...

  9. 【C#】使用NHibernate连接MySQL数据库及增删改查

    学习资料 http://www.sikiedu.com/course/51/task/891/show https://www.codeproject.com/Articles/26123/NHibe ...

  10. C语言 · 求arccos值

    算法提高 7-2求arccos值   时间限制:10.0s   内存限制:256.0MB      问题描述 利用标准库中的cos(x)和fabs(x)函数实现arccos(x)函数,x取值范围是[- ...