简述static关键字、void与void *(void指针)、函数指针
static关键字
1.修饰局部变量,延长局部变量的生命周期。
使变量成为静态局部变量,在编译时就为变量分配内存,直到程序退出才释放存储单元。
2.修饰全局变量,限制全局变量的使用范围为本文件中。
全局变量默认为静态全局变量,在编译时就为变量分配内存,直到程序退出才释放存储单元。
3.修饰函数,限制函数的使用范围为本文件中。
使函数成为静态函数,对函数的连接方式产生影响。如果想让内部函数被外界引用,可在函数前添加extern修饰。
void与void *(void指针)
1.void 即‘无类型’,void * 即‘无类型指针’,可以指向任何数据类型。
例如:
int * print;
void * pvoid;
pvoid = print;
2.void的作用
a.对函数返回的限定,例如:
void func (int ,int)
b.对函数参数的限定,例如:
int func(void)
3.void *的作用
a.作为形参,在函数中传递,表示任意类型,例如:
void * func (void *para1,void *para2)
函数指针
a.函数指针是什么?
一个函数占用一段连续的内存地址,当调用一个函数时,实际上是跳转到函数的入口地址,执行函数体代码,然后返回。
函数的入口地址怎么确定呢,它是由函数名标记的,实际是函数名就是函数的入口地址。
函数指针是一种特殊的指针,它指向函数的入口。
b.如何定义一个函数指针变量?
定义两个函数
int func1(int arg1,char arg2)
int func2(char arg2)
定义两个函数指针变量
int (* pfunc1) (int,char) = func1
int (* pfunc2) (char) = func2
只有相同的函数指针类型才可以赋值。
c.如何区别两个函数
函数指针类型是由函数签名决定的,函数签名是函数的身份证,不同类型函数的函数签名是不一样的。
同理,具有相同函数签名的两个函数是同一个函数。
函数签名的组成部分包括:函数名,函数形参的有序列表,函数返回值类型。
d.函数指针的组成部分包括:函数形参的有序列表,函数返回值类型。
转载于:https://www.cnblogs.com/zhou--fei/p/7688204.html
简述static关键字、void与void *(void指针)、函数指针相关推荐
- static关键字 void和void指针 函数指针
static关键字 1.作用于变量: 用static声明局部变量-------局部变量指在代码块{}内部定义的变量,只在代码块内部有效(作用域),其缺省的存储方式是自动变量或说是动态存储的,即指 ...
- 【C基础】指针/指针运算/二级指针/函数指针
指针定义: 指针是一种数据类型,使用它可以用来定义指针变量,指针变量中存储的其实是整数,这种整数代表了内存的编号. 指针的使用: 1.函数之间相独立,但有些时候需要共享变量.传参是值传递全局变量容易命 ...
- c语言把结构体首地址放入指针,C语言基础———指针,结构体指针,函数指针
指针基础 一 指针就是地址,地址就是指针.指针存储的是内存的地址. 二 指针的定义 1.&表示取址运算符,&a 可以取到 a 在内存中的地址;打印地址的占位符为(%p),printf( ...
- 指针数组 数组指针 函数指针 指针函数
目录 数组指针 指针数组 函数指针 指针函数 数组指针 数组指针的本质: 它是一个指针,指向的是一个数组 数组指针定义: int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一 ...
- 复习C语言指针---函数指针
复习C语言指针-函数指针 文章目录 复习C语言指针---函数指针 函数 函数指针 函数指针数组 回调函数 结束语 函数 一个函数表达式其实是不存在直接的"()"操作符的," ...
- [C语言]static关键字--#define 定义常量和宏--初识指针--初识C语言(四)
文章目录 前言 一,static关键字 二,#define 定义常量和宏 三,初识指针 总结 前言 本节主要记录初识C语言第四节内容. 内容包括:static关键字------#define 定义常量 ...
- C/C++ 一段代码区分数组指针|指针数组|函数指针|函数指针数组
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<windows.h> 4 /* 举列子说明什么是函数指针 * ...
- C语言指针 — 函数指针
文章目录 前言 一.函数指针地址 二.使用函数指针 2.1 套娃 函数指针的用途(初始版计算器) 函数指针数组 遍历函数数组 函数指针数组(版) 指向函数指针数组 的指针 回调函数 前言 函数指针 - ...
- 指向函数的指针 ------ 函数指针(function pointer)
函数具有可赋值给指针的物理内存地址,一个函数的函数名就是一个指针,它指向函数的代码.一个函数的地址是该函数的进入点,也是调用函数的地址.函数的调用可以通过函数名,也可以通过指向函数的指针来调用.函数指 ...
- C 温故知新 之 指针:函数指针变量、指针型函数
猛一看还真有点糊糊:注意区别: 1.函数型指针:指函数返回值的类型. 指针型函数:返回值是一个指针(即地址) 2.int(*p)()和int *p() 是一样吗?为什么? int (*p) ...
最新文章
- 使用VS2005进行代码覆盖率分析
- 百联OJ:2723:不吉利日期
- 学习笔记(08):MySQL数据库运维与管理-03-用户权限回收
- 互联网薪资最新出炉,收藏了
- 阿里巴巴开源技术汇总:115个软件(五)
- [Windows Server 2012] SQL Server 备份和还原方法
- (转) hash 函数及其重要性
- MT4缠论公式指标(缠中狩猎外汇MT4缠论分笔分段中枢公式指标)
- 2021年5月国产数据库大事记-墨天轮
- ThoughtWorks.QRCode功能齐全的二维码开发工具
- laravel admin里百度编辑器自定义路径和文件名
- 台式计算机总是重启,台式电脑总是自动重启,查不出问题!
- 《捷哥浅谈Drupal》第三弹之Drupal 7基本功能概述
- 计算机机房灭火器种类,常见灭火器的种类、适用范围以及使用方法
- android和iOS平台的崩溃捕获和收集
- 入侵防御(IPS)技术
- 55-将单链表原地逆置(三种方法)
- 线上宠物销售系统的设计与实现
- 在matlab中生成m序列
- 少儿编程scratch课程-海底世界
热门文章
- oracle里的or 短路么,Oracle CASE短路不能分组工作
- go替代python运维_粗读web框架之go gin和python django
- 机器学习 什么是Cross Entropy 交叉熵
- 浏览器插件 如何方便查看md文件内容 markdown
- C++ 传递指针给函数
- gradle错误 dependency.systemPath‘ for com.alibaba:jconsole:jar must specify an absolute path
- java并发编程(10)-- 线程池 底层原理
- 中原工学院计算机网络,计算机网络 考试重点 中原工学院.doc
- python语法学习第一天--变量、运算符、数据类型
- php imagick下载,PHP安装imagemagick扩展imagick