返回指针值的函数

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

int   *a (int x,  int y);

看这个经典案例:

#include <stdio.h>

int main(int argc, char const *argv[])
{
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}};
double *search(double(*pointer)[], int n);
double *p;
int i, m=; p = search(score, m);
for (i = ;i < ; i++)
{
printf("%f\t", *(p + i));
}
printf("\n");
} double *search(double(*pointer)[], int n)
{
double *pt;
pt = *(pointer + n);
return pt;
}

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

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

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

指针数组

概念:

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

都相当于一个指针变量。

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

#include <stdio.h>

int main(int argc, char const *argv[])
{
int a[] = {, , , , };
int *name[] = {&a[], &a[], &a[], &a[], &a[]};
int i; for (i = ; i < ; i++)
{
printf("%d ", *name[i]);
}
printf("\n");
}

指向指针的指针

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

形式如: char **p;

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

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

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

个指针变量

代码:

#include <stdio.h>

int main(int argc, char const *argv[])
{
char *name[] = {"abc", "efg", "higk"};
char **p;
int i; for (i=; i<;i++)
{
p = name + i;
printf("%s\n", *p);
}
}

总结

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. 简单修改文件名python脚本

    import os import sys path = "D:\emojis" for (path,dirs,files) in os.walk(path): for filena ...

  2. HTML5学习笔记(七):CSS盒子模型

    在CSS中,盒子模型有W3C标准盒子模型和IE盒子模型两种,这里所谈的是基于W3C标准的盒子模型. 所有HTML元素都可以看作盒子,即所有HTML标签都支持盒子模型的属性,在CSS中,"bo ...

  3. 菜鸟调错(六)——Hibernate 4.3.x 注解常见错误及解决方案

    编程的过程免不了遇到各种错误,各种问题,而遇到问题,解决问题的这个过程我认为是最让人兴奋的事情.越棘手的问题,解决以后带来的快感也越大.当一个问题你搞了一下午或者一天,甚至几天,当你解决的那一刻你会觉 ...

  4. JVM Troubleshooting

    案例分享:如何通过JVM crash 的日志和core dump定位和分析Instrument引起的JVM crash https://docs.oracle.com/javase/7/docs/we ...

  5. 【嵌入式】FS2410非操作系统外围资源测试

    在刚接触FS2410时,其实这个测试也没有多大意义,但是对于以后来说,当一个产品做成功时,产品测试还是一个必须经过的一个阶段,所以这个流程还是有必要走一下! 在非操作系统下,主要进行RTC测试,按键测 ...

  6. error LNK2005: _DllMain@12 已经在 MSVCRTD.lib(dllmain.obj) 中定义

    备注:我上次遇到这个问题是Win32 DLL项目中无意中include了afxwin.h,这个是MFC的头文件,把这个include删掉就解决了 ================ 转自:http:// ...

  7. LeetCode: Merge k Sorted Lists 解题报告

    Merge k Sorted Lists Merge k sorted linked lists and return it as one sorted list. Analyze and descr ...

  8. Python生成一个不含回文字符串的字符串

    [本文出自天外归云的博客园] 回文字符串介绍 回文字符串就是对称的字符串,例如: “ABA” “ABBA” “ABCBA” 题目 给定一个字符串,请发明一种方法,让字符串中不包含回文字符串. 我的解法 ...

  9. Python与操作系统有关的模块

    Os模块 Python的标准库中的os模块主要涉及普遍的操作系统功能.可以在Linux和Windows下运行,与平台无关.os.sep 可以取代操作系统特定的路径分割符.os.name字符串指示你正在 ...

  10. ASP.NET学习笔记(4)——上传图片

    说明(2017-10-8 23:03:43): 1. 后面的内容都是一些杂七杂八的,零零碎碎的,之前都直接略过了,不过其实还是挺重要的,这次重新学习要认认真真敲一遍. 2. 明天中午9号要回北京了,今 ...