最新c语言指针的基本概念及特点 c语言指针的总结精选
工作学习中一定要善始善终,只有总结才标志工作阶段性完成或者彻底的终止。通过总结对工作学习进行回顾和分析,从中找出经验和教训,引出规律性认识,以指导今后工作和实践活动。相信许多人会觉得总结很难写?下面是小编带来的优秀总结范文,希望大家能够喜欢!
c语言指针的基本概念及特点 c语言指针的总结篇一
关于指针的基本概念,我就不详细介绍了,因为有许多书都介绍的很详细。这里我只介绍一部分。指针指向一个地址,而指针本身在大多数系统上都是一个无符号整数(在32bit机上是4byte,在64bit机上是8byte)。
在上面的例子中,先定义了一个指针p,它的类型是int,也就是说它只能指向一个int型的变量,而不能指向其他类型的变量。最后我们将a变量的地址赋给p。在这个过程中,涉及到两个内存块,一个是存放指针p的内存(用&p可得到内存地址),一个是存放a的值的内存块(用&a可以得到内存地址)。而第一个内存存的p的值经过赋值语句后也就是&a的值了。另外一个注意点是, *(星号)和变量类型以及变量名之间可以有任意个空格,也可以没有。比如下面三种方式都是一样的:
int a = 10;
int *p; //声明一个指针,但未初始化,此时为野指针
p = &a; //将a变量的地址赋给指针p
在上面的例子中,先定义了一个指针p,它的类型是int,也就是说它只能指向一个int型的变量,而不能指向其他类型的变量。最后我们将a变量的地址赋给p。在这个过程中,涉及到两个内存块,一个是存放指针p的内存(用&p可得到内存地址),一个是存放a的值的内存块(用&a可以得到内存地址)。而第一个内存存的p的值经过赋值语句后也就是&a的值了。另外一个注意点是, *(星号)和变量类型以及变量名之间可以有任意个空格,也可以没有。比如下面三种方式都是一样的':
int* a;
int * a;
int *a;
首先从标示符开始阅读,然后往右读,每遇到圆括号的右半边就调转阅读方向。重复这个过程直到整个声明解析完毕。需要注意的是,已经读过的部分在后续作为一个整体来看。
int *a[3];
//首先a右边是[],说明a是一个具有3个元素的数组
//右边读完,则读左边。a左边是int*,说明a的元素是int类型的指针
int (*a)[3]
//首先,a右边是圆括号的右半边,转向,左边是一个*,说明a是一个指针
//遇到括号,再转向,是一个[],说明a是一个指向3个元素的数组的指针
//左边是int,说明元素类型是int
//所以,a是一个指向具有3个整型元素的数组的指针
int (*func)(int p);
//相同的方法,func首先是一个指针
//然后右边是一个括号,说明(func)是个函数,而func是指向这个函数的指针
//这个函数具有int类型的参数,返回值类型为int
int (*func[3])(int p);
//同理,func首先是一个具有3个元素的数组
//其次,func左边是一个*,说明func数组的元素是指针。要注意修饰的是func[3],而不是func。因为已经读过的部分在后面都作为一个整体来对待
//跳出第一个圆括号,右边又是一个圆括号,说明func数组的元素是函数类型的指针。这个函数具有int类型的参数和int型返回值
s("content_relate");
【c语言指针的基本概念】相关文章:
1.
c语言指针教学
2.c语言指针的传递
3.c语言指针的用法
4.c语言指针用法详解
5.c语言指针函数和函数指针详解
6.c语言的指针类型解析
7.c语言中的指针解读
8.c语言指针数组的概念