开头语:大学学了几年C语言后,觉得自己掌握了C语言,高喊精通C语言。工作一年多的现在,想想那时真是不知天高地厚啊,了解的越多,掌握的越多,越感觉到不通不精的越多,越感觉C语言有种浩瀚无边的感觉。
(1) int A;
int 类型变量A,占4字节。
(2) int *A;
int类型指针变量A,占4字节。
(3) int A[n];
int类型的数组A,占4*n字节。
(4) (int *)A[n];
int类型的指针数组A,本质是数组,数组里面存的都是int类型的指针。占4*n字节。
(5) int (*A)[n];
指向二维数组的int类型的指针变量A,指向拥有n个元素的数组,占4个字节。
通常用于二维数组的指向问题,不过这个不常用,反正我工作一年多了,基本没用过。
举例:
int arr[4][4]; //int 类型的二维数组arr,可以想象成,4行4列的一组元素,最多可有16个。
int (*A)[4]; //指向二维数组的指针变量,指向1行元素,每行4个元素。
(6) int A(int);
A是一个函数,返回值的类型为int类型的。占4字节。
(7) int (*A)(int);
A是一个int类型的函数指针,它是一个指针,但它指向的是一个函数,所指向的函数要与它的类型、参数情况相同。
(8) (int *) A(int);
A是一个int 类型指针函数,它的返回值int类型的指针。占4个字节。同 int *A(int)。
(9) const int *A;
A是一个int类型的常量指针,指向常量,可以指向不同地址的常量,但所指向的常量的值是不可改变的。占4字节。同 int const *A。
(10) const int * const A;
int类型的常量指针,一开始就要进行初始化,后不可更改。占4字节。、
结尾插语:在同一个系统中,同一个类型的任何指针的大小是相同的。