返回指针值的函数

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

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. extern C的作用具体解释

    转载于:http://www.cnblogs.com/rollenholt/archive/2012/03/20/2409046.html 1.引言 C++语言的创建初衷是"a better ...

  2. rdesktop 源码安装

    # ./configure --prefix=/data/apps/rdesktop-1.6.0 #make && make install

  3. 【ARM】2440裸机系列-RTC数字时钟

    功能 裸机程序,实现LCD显示数字时钟 主要代码   1)背景绘制 void Brush_ U32 c) { int x,y ; for ( y = 0 ; y < LCD_HEIGHT ; y ...

  4. Python实现归并排序

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/3/18 14:26 # @Author : baoshan # @Site ...

  5. 在PL/SQL中调用存储过程--oracle

    在oracle10中写好了存储过程,代码如下: CREATE OR REPLACE Procedure Proc_Insert ( sName in varchar2, sAge in int, sE ...

  6. LeetCode: Search in Rotated Sorted Array II 解题报告

    Search in Rotated Sorted Array II Follow up for "LeetCode: Search in Rotated Sorted Array 解题报告& ...

  7. python调用.net动态库

    # python调用.net动态库 ### pythonnet简介------------------------------ pythonnet是cpython的扩展- pythonnet提供了cp ...

  8. 基于jQuery和CSS3超酷Material Design风格滑动菜单导航特效

    分享一款效果非常炫酷的谷歌 Material Design 风格jQuery和CSS3滑动选项卡特效.该选项卡特效集合了扁平风格设计和按钮点击波特效.是一款设计的非常不错的Material Desig ...

  9. jquery开发的数字相加游戏(你能玩几分)

    jquery开发的数字相加游戏,我在一轮中玩了632分(如下图),你能玩几分,哈哈... 我要试一试 下面贡献下这款“数字相加游戏”的开发过程. html部分: <div class=" ...

  10. Android学习笔记(38):Handler消息传递处理机制

    先说为什么须要Handler: Android的主线程又叫UI线程,用于处理与UI相关的时间.Android仅仅同意在主线程中改动UI组件,当我们在其它线程中须要改动UI界面时.就须要发送消息到主线程 ...