数组的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++中定义数组一定要指定数组大小么 ... 
随机推荐
- Activit工作流学习例子
			看了网上一些文章,动手操作了一遍,终于学会了Activit的一些常规使用. 一.Eclipse中的Activiti插件安装 Activiti有一个Eclipse插件,Activiti Eclipse ... 
- Gitflow 视频讲解
			How to use a scalable Git branching model called Gitflow git视频合集列表 github大本营 gitflow中文备忘清单 ... 
- RabbitMQ学习之延时队列
			原帖参考:http://www.cnblogs.com/telwanggs/p/7124687.html?utm_source=itdadao&utm_medium=referral http ... 
- CAS Client集群环境的Session问题及解决方案介绍,下篇介绍作者本人项目中的解决方案代码
			CAS Client集群环境的Session问题及解决方案 程序猿讲故事 2016-05-20 原文 [原创申明:文章为原创,欢迎非盈利性转载,但转载必须注明来源] 之前写过一篇文章,介绍单点登 ... 
- Quartus工程中各文件类型的含义
			https://blog.csdn.net/jingliangliu/article/details/52245497 .jic JTAG Indirect Configurati ... 
- 【Luogu P2764】最小路径覆盖问题
			网络流 \(24\) 题之一. Problem Description 给出一个 \(n\) 个点 \(m\) 条边的 \(DAG\) ,求最小路径点覆盖,并输出路径选择方案. Input Forma ... 
- 【译】第45节---EF6-索引属性
			原文:http://www.entityframeworktutorial.net/entityframework6/index-attribute-in-code-first.aspx Entity ... 
- CSS sprites
			CSS Sprites在国内很多人叫css精灵,是一种网页图片应用处理方式. 优点: 它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一 ... 
- 踩坑记录:ubuntu下,http代理无法修改的问题
			事情经过: 今天在ubuntu下使用http代理的时候,碰到一个奇怪的现象.就是在当前shell窗口下,输入“env | grep proxy”,显示的http_proxy一直都存在,即使我修改了本 ... 
- IIS附加进程调试
