C/C++醒脑总结

本文深入解析C语言中的各种指针应用,包括全局变量、局部变量、指针、数组、函数指针等概念,以及如何声明、定义和使用这些元素。特别关注函数指针的定义与调用,函数指针数组的使用,以及类型别名的创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0 extern int a;//全局变量的声明
1 int a;//一个整数类型的变量
2 int* a;//一个int类型的指针
3 int a[3];//一个int类型的数组,数组长度为3
4 int* a[3];//一个int类型的指针数组,数组长度为3
5 int a[2][3];//一个int类型二维数组
6 int* a[2][3];//二维数组 指针数组
7 int a();//函数声明  返回值是int,形参是void
8 a();//函数调用,或者函数指针调用
9 int* a();//函数声明 返回值是int*,形参是void
10 *a();//函数调用之后马上解引用(说明函数的返回值是个地址)
11 int a(int);  int a(int b);  extern int a(int);//函数声明 返回值是int,形参是int
12 a(3);//函数调用 传实参3
13 int* a(int); int* a(int b); int* a(int,int);//函数声明 返回值是int*,形参是int
14 *a(3);//函数调用 传实参3,函数调用之后马上解引用(说明函数的返回值是个地址)
15 int (*a)();/*函数指针的定义*/ extern int (*a)();/*函数指针的声明*/
16 (*a)();//通过一个函数指针来调用函数
17 int* (*a)();//函数指针的定义,只能指向返回值是int*,形参是void的函数
18 int* (*a)(int);//函数指针的定义,只能指向返回值是int*,形参是int的函数
20 (*a)(3);//通过一个函数指针来调用函数,传了一个实参
21 int (*a[3])() = {f1,f2,f3};//函数指针数组定义
22 (*a[0])();//函数指针数组 的调用
23 *(*a[0])(5); //函数指针数组 的调用,传了一个实参5,并且返回值解引用了
24 (int)a;/*强转*/ (int)a(); /*调函数之后返回值强转*/
25 (int*)a;/*强转*/
26-------------------
typedef 类型 别名; 
typedef int (*a)();   typedef int (*别名)();  //
a aa;//定义单个函数指针
a bb[3];//定义函数指针数组 
27-------------------
int a[2][3];
int b[2][4];
int (*pa)[3] = a;//指向二维数组的指针,且第二维度必须是3
//pa = b;
28-------------------
int* a(   int* (*b)(int*)  );//函数声明,返回值是int*,形参是函数指针,

int* f(int*){} 
a( f );

 

--------------归纳-----------------------
函数声明:类型 简单的一个名字(可有形参)
函数调用:无类型 名字(实参)
函数指针定义:类型 (*a)(可有形参);
函数指针数组定义:类型 (*a[N])(可有形参);
函数指针的调用: 无类型 (*a)(实参)
函数指针的调用: 无类型 (*a[N])(实参)

强转: (类型)名字
    (类型)名字(实参)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值