C语言声明学习之初级篇_第1页
C语言声明学习之初级篇_第2页
C语言声明学习之初级篇_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——C语言声明学习之初级篇C语言声明学习之初级篇

C语言为我们定义了四种根本数据类型:整型,浮点型,指针以及聚合类型数组和布局体等,在此根基上,我们就可以声明变量。我们平日经常说定义一个某种类型的变量,其实这样说不切当,理应说是声明变量。

变量声明的根本形式是:

说明符一个或多个声明表达式列表

譬如说:inta,b,c,d;

C语言中对指针的声明对比有代表性,我们来看一下:

譬如声明一个指向int型的指针a:int*a;

这个语句表示表达式*a产生的结果类型是int,而我们又知道*操作符执行的是间接访问操作,所以可以推断a断定是一个指向int的指针。

C语言在本质上是一种自由形式的语言,它给了程序员很大的'空间,我们同样可以这样写:int*a,这个声明与int*a时一个意思,而且貌似更为领会,a被声明为类型为int*的指针实那么不然,这会诱导我们这样声明三个指向int型的指针:

int*a,b,c;

可能你会很自然的以为这条语句把三个变量a、b、c都声明为指向整型的指针,但是事实上我们被它的形式愚弄了,星号实际上是表达式*a的一片面,只对这个标识符有用,a是一个指针,但是b和c都只是普遍的整型而已,要声明三指针,这样写是可以的:

int*a,*b,*c;

从这个简朴的例子我们可以看出C语言的声明规矩多么具有迷惑性,呵呵,这也是C语言饱受批*的地方之一,但这抉择与语言本身的设计哲学,我们无法变更,要想用好C语言,我们务必掌管它的语法规矩。

我们再看一个例子:

intfun;

我们都知道它把f声明为一个函数,它的返回值是一个整数。

假设这样写:

int*fun;

要想推断出它的含义,我们务必知道*fun是如何求值的。首先执行的是函数调用操作符,由于它的优先级高于间接访问操作符*,所以fun是一个函数,它的返回值类型是一个指向整型的指针。

再看一个更为好玩的声明:

int*fun;

这个声明有两对括号,每对括号的含义不同。其次对括号是函数调用操作符,但是第一对只起到聚组的作用。它导致间接访问在函数调用之前举行,使fun是一个函数指针,它所指向的函数返回一个整型值。

那么现在这个声明理应很轻易分析出来了

int**fun;

fun还是一个函数指针,只是所指向的函数返

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论