C学习——指针

发布时间:2017-3-24 2:14:39 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"C学习——指针",主要涉及到C学习——指针方面的内容,对于C学习——指针感兴趣的同学可以参考一下。

1、指针 a)    int a;表示一个内存空间,这个空间用来存放一个整数(int); b) int* a;表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个存放整数的空间,即a)中提到的空间; c) int** a;表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个存放指针的空间,并且指向的这个空间中的指针,指向一个整数。也简单的说,指向了一个b)中提到的空间; d) int (*a)[10];表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个长度为10、类型为int的数组;和int** a的区别在于,++、+=1之后的结果不一样,其他用法基本相同。 以上四种类型见上图表示。 e) int (*a)(int);表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个函数,这个函数有一个类型为int的参数,并且函数的返回类型也是int。   最近看到有人问到这样的问题"数组名能否自加问题",最后我经过验证得出了个结论,不可以,假设有一个整形数组int a[4] 如果出现a++表达式,则是一种错误的表达式,但是可以是a+1,所以推出了一个想法就是地址不可以自加,但是可以通过加几来完成,对数组中其他元素的遍历,也就是说必须有个"+"号这样才可以实现对数组名也就是地址的运算,如果没有加号则就是错误的.当给出一个指针时,int p;p=a;p++;这样的运算就是正确的,指针是一种可移动的东西,因此可以进行自加,自加有和p+1是一样的效果,所以由此推出:     不管是什么类型的地址都没有自加,只能通过"+"(这就相当于是地址的移动了)几来实现地址的转移,而指针可以进行自加,效果和"+"几是一样的.    

上一篇:dataguard常用命令及DG主备库开关顺序
下一篇:简单概率dp(期望)-hdu-3853-LOOPS

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款