数组的typedef 和函数的typedef
#include<stdio.h>
#include<string.h>
#include<stdlib.h> // 数组指针 语法 梳理
//
//int a[10];// // int add(int a, int b)
{
return a + b;
}
int main()
{
int a[10]; //a代表的是数组首元素的地址 &a代表整个数组的地址 a+1的步长为4 &a+1步长=40 .
//定义一个数组类型
{
typedef int (myTypeArray)[10];
myTypeArray Myarray;
Myarray[0] = 10;
}
//定义一个指针数组类型
{
typedef int(*PTypeArray)[10];
PTypeArray myPArray;
myPArray = a;
//myPArray[0] = 20; 这句话是错误的,因为myPArray相当于二级指针,它是指向一个数组的指针
(*myPArray)[0] = 20;
}
//定义一个指向 数组类型的指针 数组类的指针
{
int(*mypointer)[10];
mypointer = a;
(*mypointer)[0] = 21;
printf("%d\n", a[0]);
} //函数指针语法梳理
//1 如何定义一个函数类型
//2 如何定义一个函数指针类型
//3 如何定义一个 函数指针 (指向一个函数的入口地址) //1 如何定义一个函数类型
int temp;
{
typedef int (MyTypeFuc)(int a, int b);
MyTypeFuc *myfunc;
myfunc = add;
temp= myfunc(2, 4);
printf("temp= myfunc(2, 4)===>%d\n", temp);
}
// 2 如何定义一个函数指针类型
{
typedef int(*MyPTypeFunc)(int a, int b);
MyPTypeFunc myPfunc;
myPfunc = add;
temp=myPfunc(4, 6);
printf("temp=myPfunc(4, 6)===>%d\n", temp); }
//3 如何定义一个 函数指针 (指向一个函数的入口地址)
{
int(*MyPFunc)(int a, int b);
MyPFunc = add;
temp=MyPFunc(3, 6);
printf("temp=MyPFunc(3, 6)===>%d\n", temp);
}
system("pause");
}
这里的加了typedef 和没有加的区别就是:加了则定义一种类型,没加则是代表的一种表现的形式。
数组的typedef 和函数的typedef的更多相关文章
- C/C++函数指针(typedef简化定义)
学习要点: 1,函数地址的一般定义和typedef简化定义; 2,函数地址的获取; 3,A函数地址作为B函数参数的传递; 函数存放在内存的代码区域内,它 ...
- 由typedef和函数指针引起的危机
由typedef和函数指针引起的危机 昨天阅读了大神强哥的代码,发现里面用到了函数指针,也用到的typedef.本来我自以为对这两个概念有一定的认识,但是突然发现这两个东西居然用到了一起!!!!(在一 ...
- typedef 复杂函数指针
下面是三个变量的声明,我想使用typedef分别给它们定义一个别名,请问该如何做? >1:int *(*a[5])(int, char*); >2:void (*b[10]) (void ...
- typedef定义函数类型或函数指针
转载请标明出处: 最近在看redis的代码,发现了有关函数指针的部分,想把它记下来. 在redis中有类似下面的定义,利用typedef 定义了一个新的类型,这种类型是一个函数: typedef vo ...
- PHP如何判断一个数组是一维数组或者是二维数组?用什么函数?
如题:如何判断一个数组是一维数组或者是二维数组?用什么函数? 判断数量即可 <?php if (count($array) == count($array, 1)) { echo '是一维数组' ...
- C语言中的声明解析规则——数组,指针与函数
摘要:C语言的申明存在的最大问题是:你无法以一种人们所习惯的自然方式和从左向右阅读一个声明,在引入voliatile和const关键字以后,情况更加糟糕了.由于这些关键字只能出现在声明中,是的声明形式 ...
- javascript 数组的常用操作函数
join() Array.join(/* optional */ separator) 将数组转换为字符串,可带一个参数 separator (分隔符,默认为“,”). 与之相反的一个方法是:Stri ...
- JS中有关数组Array的常用方法函数
Array对象的方法主要有如下几种(我所知道的): concat()连接两个或多个数组,并返回结果,但是值得注意的是该方法并不改变数组本身,而仅仅返回一个数组连接的副本. push()在数组后面添加一 ...
- 在C++的函数中如何指定一个数组,使得这个数组的大小由函数的输入值来决定
今天调试一个C++程序,在一个函数中定义了一个一维数组,设定数组的大小由函数的输入值来决定. 是这样子的: ]; 然后发现:报错! 报错是这样的: 那么问题来了,在C++中定义数组一定要指定数组大小么 ...
随机推荐
- 修改控制台为Consolas字体
windows下控制台字体修改为Consolas字体比较好看,修改步骤如下: 临时修改 命令行cmd命令进入控制台,输入chcp 437命令,执行. 右键点击标题栏进入属性,修改字体为Consolas ...
- 题解——Codeforces Round #508 (Div. 2) T3 (贪心)
贪心的选取最优解 然后相减好 记得要开long long #include <cstdio> #include <algorithm> #include <cstring ...
- Kylin简介
来源 Cube: 用空间换时间(类似:BI分析) 预计算把用户需要查询的维度以及他们所对应的考量的值,存储在多维空间里 当用户查询某几个维度的时候,通过这些维度条件去定位到预计算的向量空间,通过再聚合 ...
- 95% CI, 置信区间 Confidence Interval
什么是置信区间 置信区间又称估计区间,是用来估计参数的取值范围的.常见的52%-64%,或8-12,就是置信区间(估计区间). 置信区间的概述 1.对于具有特定的发生概率的随机变量,其特定的价值区 ...
- 【Ruby】【变量】
知识点[Ruby 中$开头的全局变量.内部变量.隐藏变量介绍] Ruby 中充满了一系列的隐藏变量,我们可以从这些预定义的全局变量中获取一些有意思的信息. 全局进程变量 $$ 表示当前运行的 ruby ...
- 【抓包】【Charles】
Mac抓包神器-----Charles Charles 是一款Mac上的HTTP代理服务器.HTTP监视器.反向代理服务器,可以让开发者监视查看所有连接互联网的HTTP通信,包括请求,响应和HTTP头 ...
- hdu 6134 Battlestation Operational 莫比乌斯反演
Battlestation Operational Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- async、await在ASP.NET[ MVC]中之线程死锁的故事
场景重构 public ActionResult Index(string ucode) { string userInfo = GetUserInfo(ucode).Result; ViewData ...
- Data Structure 基本概念
数据(data) 描述客观事物的数值 数据项(data item) 具有原子性,不可分割的最小单位 数据元素(data element)集合的个体,通常由很多数据组成 数据对象(data object ...
- hibernate事务规范写法
@Test public void testTx() { SessionFactory sessionFactory = null; Session session = null; Transacti ...