一、关于typedef与#define的相似之处
例如:typedef int COUNT;
#define COUNT int
作用:都是用COUNT代表int,但事实上,二者是不同的。#define是在预编译时处理的,只能作简单的字符串替换,而typedef是在编译时处理的,并不是作简单的字符串替换,而是声明一个类型。
二、有关整型的数据类型
数据类型 | 含义 |
int p; | 定义整型变量p |
int *p; | p为指向整型数据的指针变量 |
int p[n]; | 定义整型数组p,它有n个元素 |
int *p[n]; | 定义指针数组p,它由n个指向整型数据的指针元素组成 |
int (*p)[n]; | p为指向含n个元素的一维数组的指针变量 |
int p(); | p为带回整型函数值的函数 |
int *p(); | p为带回一个指针的函数,该指针指向整型数据 |
int (*p)(); | p为指向函数的指针,该函数返回一个整型值 |
int **p; | p是一个指针变量,它指向一个指向整型数据的指针变量 |
三、有关二维数组表达式的含义
表达式 | 含义 |
a | 二维数组名,指向一维数组a[0],即0行首地址 |
a[0]、*(a+0)、*a | 0行0列元素地址 |
a+1、&a[1] | 1行首地址 |
a[1]、*(a+1)+2、&a[1][2] | 1行2列元素a[1][2]的地址 |
*(a[1]+2)、*(*(a+1)+2)、a[1][2] | 1行2列元素a[1][2]的值 |