c指针 --笔记2返回指针值的函数
返回指针值的函数
一般带回指针值的函数,定义形式为:
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返回指针值的函数的更多相关文章
- 剑指offer笔记面试题1----赋值运算符函数
题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数. class CMyString{ public: CMyString(char* pData = nullptr); CMyS ...
- 12-返回指针的函数&&指向函数的指针
前言 接下来我只讲指针的最常见用法,比如这一章的内容----返回指针的函数 与 指向函数的指针 一.返回指针的函数 指针也是C语言中的一种数据类型,因此一个函数的返回值肯定可以是指针类型的. 返回 ...
- (C/C++学习笔记) 十二. 指针
十二. 指针 ● 基本概念 位系统下为4字节(8位十六进制数),在64位系统下为8字节(16位十六进制数) 进制表示的, 内存地址不占用内存空间 指针本身是一种数据类型, 它可以指向int, char ...
- 返回结点值为e的二叉树指针
题意为,如果二叉树某结点的值为e(假定是整型二叉树),返回这个结点的指针.初看这道题,联想到二叉树可以很简单的遍历,直接返回这个指针不就行了吗?如下图所示,假如要返回值为3的结点指针: 设计好了一个函 ...
- Go语言学习记录之一(返回指针与返回值的区别)
先来一个返回指针的测试,结果跟想象一样 type A map[int]string type B struct { A c int } func main() { b := B{make(A), 10 ...
- Android JNI编程(三)——C语言指针的初步认识、指针变量、互换两个数、函数返回多个值
版权声明:本文出自阿钟的博客,转载请注明出处:http://blog.csdn.net/a_zhon/. 目录(?)[+] 一.什么是指针? 简单来说: 指针就是内存地址 内存地址就是指针. ...
- c++函数参数或返回值为函数指针
C++中函数指针的形式为:返回值类型 + 参数类型,函数没有值类型,但是却可以声明函数的指针,因为函数是可寻址的,存放在内存中的代码段,可以从指针访问. 函数指针可以声明为: void (*pF)(v ...
- 【学习笔记】【C语言】返回指针的函数
函数如果带*的返回的就是指针 char *test(){ } #include <stdio.h> char *test(); /* 返回指针的函数 */ int main() { cha ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
随机推荐
- ubuntu java 环境配置
下载oracle java sudo add-apt-repository ppa:webupd8team/java -y sudo apt-get update sudo apt-get insta ...
- 实现一个简单的虚拟demo算法
假如现在你需要写一个像下面一样的表格的应用程序,这个表格可以根据不同的字段进行升序或者降序的展示. 这个应用程序看起来很简单,你可以想出好几种不同的方式来写.最容易想到的可能是,在你的 JavaScr ...
- 深入浅出HTTPS基本原理
基础知识准备:在了解HTTPS的基本原理之前,需要先了解如下的基本知识. 一.什么是HTTPS,TLS,SSL HTTPS,也称作HTTP over TLS.TLS的前身是SSL,TLS 1.0通常被 ...
- HTML5学习笔记(二十四):DOM扩展
DOM扩展 DOM标准扩展最开始都是来自各个浏览器的自定义扩展DOM的功能,后被收录为标准的DOM相关API. 本笔记只记录被各大浏览器支持的标准扩展,对于特定浏览器的专有扩展不讨论. 选择符API ...
- nginx配置长连接
http { keepalive_timeout 20; --长连接timeout keepalive_requests 8192; --每个连接最大请求数 } events { worker_con ...
- Linux命令格式及帮助命令详解
昨天看了一个教程,关于Linux命令的,本来以为当是复习随便看看的,结果看了不禁汗颜,这个真挺有学问的,很多东西都是我还不知道的,故此做总结,此文适合于对Linux命令有一定了解但又不是很深入的孩子, ...
- stm32keilIDE遇到的bug
最进项目中遇到keil中使用sscanf时,采取类正则表达 %*[^/]/%[^@]时不能正确得到的结果,同样的代码在gcc中运行通过.然后又遇到stm32 keil编译器printf带多个参数就卡死 ...
- Notepad++的右键菜单
这种方法可以重复利用,如果下次它又消失了,你可以再导入一次就OK了.比如我们创建一个叫 notepad++.reg的文件,将下面的内容拷贝进去保存 Windows Registry Editor Ve ...
- JAVA-数据库之JDBC连接MySQL数据库
相关资料:<21天学通Java Web开发> JDBC连接MySQL数据库1.如果需要通过JDBC来连接MySQL数据库,还必须先在MySQL数据库服务器中创建数据库和表. Connect ...
- Android命令行截屏screencap
Android下面使用命令行截图. 因为工作调试用的机器,没法连接USB,所以用不了一般的截图方法,后来查了一下,Android4.0以后都内置了截图命令. 可以使用下面命令截取屏幕. screenc ...