zoukankan      html  css  js  c++  java
  • 数组的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
    ", 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
    ", temp);
    	}
    	// 2 如何定义一个函数指针类型
    	{
    		typedef int(*MyPTypeFunc)(int a, int b);
    		MyPTypeFunc  myPfunc;
    		myPfunc = add;
    		temp=myPfunc(4, 6);
    		printf("temp=myPfunc(4, 6)===>%d
    ", temp);
    
    	}
    	//3 如何定义一个 函数指针  (指向一个函数的入口地址)
    	{
    		int(*MyPFunc)(int a, int b);
    		MyPFunc = add;
    		temp=MyPFunc(3, 6);
    		printf("temp=MyPFunc(3, 6)===>%d
    ", temp);
    	}
    	system("pause");
    }
    

      这里的加了typedef 和没有加的区别就是:加了则定义一种类型,没加则是代表的一种表现的形式。

  • 相关阅读:
    浅谈系统调用与库函数
    由代码到可执行程序----浅谈程序的编译链接
    初识信号---进程间的交流
    内部排序总结之----选择类排序(选择、堆)
    僵死进程
    父子进程那些事儿
    fok函数
    面试-css样式
    面试-javascript知识
    面试--数据库
  • 原文地址:https://www.cnblogs.com/xiaochige/p/6699879.html
Copyright © 2011-2022 走看看