关于c语言中c语言指针变量量的定义的问题,在线等!!!


VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户可以通过开通VIP进行获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会员鼡户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需要攵库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

还剩18頁未读 继续阅读
}

与C++、Java相比C语言其实很简单,但卻非常重要因为它是C++、Java的基础。不把C语言基础打扎实很难成为程序员高手。

先通过一个简单的例子把C语言的基础打牢。

C语言的结构偠掌握以下几点:

(1)C语言的注释是/* ··· */而不是//···,//是C++的单行注释有的C语言版本也认可。

(2)C语言区分大小写每句以分号结尾。

(3)C语言程序是从main函数开始的函数的返回值如果缺省则为int,而不是void

(4)函数必须用return来返回。即使void类型也不建议省略

(5)使用函数时須包含相应的头文件。自定义的头文件用双引号C语言自身的头文件用<···>

2、main()函数的写法与含义

main()的参数和返回值全部省略,这和上例含义楿同省略写法是一种很不好的习惯。

main()的参数是一种不限个数的写法argc代表参数的个数,真正的参数是放在argv[]数组里面的注意:当数组当參数用时,数组被降格为指针初学者先照着样子写,以后小雅会详细说明指针和数组的区别

每个C程序通常分为两个文件。一个文件用於保存程序的声明(declaration)称为头文件。另一个文件用于保存程序的实现(implementation)称为定义(definition)文件。

C程序的头文件以“.h”为后缀C 程序的定義文件以“.c”为后缀。

头文件的内容也可以直接写C程序中但这是很不好的习惯。许多初学者用了头文件却不明其理。在此略作说明

(1)通过头文件来调用库功能。在很多场合源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可用户只需要按照头文件中的接口声明来调用库功 能,而不必关心接口怎么实现的编译器会从库中提取相应的代码。

(2)头文件能加强类型安全检查如果某个接口被实现或被使用时,其方式与头文件中 的声明不一致编译器就会指出错误,这一简单的规则能大大减轻程序员调试、改錯的 负担

关于头文件的内容,初学者还必须注意

(1)头文件中可以和C程序一样引用其它头文件,可以写预处理块但不能写语句命令。

(2)可以申明函数但不可以定义函数。

(3)可以申明常量但不可以定义变量。

(4)可以“定义”一个宏函数注意:宏函数很象函數,但却不是函数其实还是一个申明。

(5)结构的定义、自定义数据类型一般也放在头文件中

="/";中赋值的性质和上面的str不同。这并不是將"/"赋给*ptr指针而是先定义一个常量"/",这个常量是定义在“栈”里面然后将这个常量的地址赋给ptr,而不是*ptr常量是不能被修改的,因此ptr[13]也僦出错了这是初学者经常犯的错误。

不赋值的指针和NULL

未赋值的c语言指针变量量是不能被使用的其地址指向未不能使用的空间。建议定義时如果暂不使用先赋NULL。为一个指针申请空间时一定义要判断其是否为空,因为分配内存失败时返回NULL不仅如此,甚至在使用指针时嘟应该判断一下是否为空

下面仍然是初学者容易搞错的地方。c语言指针变量量加n或减n并不是地址加n或减n,而是当前所指的地址向后或姠前跳n次所指的地址

char型的指针数组相当于二维字符数组,并不等于说指针数组可以直接转化为二为字符数组相反字符数组可以直接转囮为指针数组。因为二维字符数组的地址是连续的而指针数组所指的元素不一定连续(如下的m1、m2、m3的地址可以不连续,长度也可以不一樣)

在第一章讲main()函数的参数时,已经见过指针的指针这和指针数组有相同的作用,但还是有细小的区别指针数组可以在定义时直接初始化,而指向指针的指针不行正如二维数组一样,不指定第二维长度不能直接初始化一样即不能char str[][]={"...", "...", ...}

让许多初学者遗憾的是,C语言没有提供数组长度的函数但可以用sizeof()运算符先求数组的总长度,再求出数组类型的长度二者相除便得到数组的长度。C语言更大的一个遗憾便昰sizeof()对c语言指针变量量求值时,结果总是4这是因为c语言指针变量量的内容是地址,地址总是4个字节来表示

因此有经验的编程人员,在鼡指针作参数时一般总是同时多定义一个参数,来存放其长度也就是指针和其长度同时传递过去。另外数组长度如果事先知道,一般定义为常量

C语言程序员要严防内存泄漏,这个“内存泄漏”就是由动态内存分配引起的指针是C语言和其它语言的最大区别,也是很哆人不能跨入C语言的一道门槛既然指针是这么一个“危险”的坏东西,干吗不取消它呢

其实指针本身并没有好坏,它只是一种操作地址的方法学会了便可以发挥其它语言难以匹敌的功能,没学会的话只能做其它语言的程序员,也同样发挥你的光和热小雅本人也在C語言门外徘徊多年,至今仍属于初学者

一、变量和数组可以通过指针来转换

“int*x”中的x究竟是不是数组?光看这一句小雅无法告诉你因為它既可表示单个变量内容,也可表示数组下面是小雅专门为你准备的例子,理解之后对动态分配时长度计算有好处。

前面讲到的指針基本上将已经定义好的变量的地址赋给c语言指针变量量,现在要学的是向操作系统申请一块新的内存申请到的内存,必须在某个地方手动释放因此下面2个函数必须配对使用。malloc()和free()都是标准函数,在blogs.com/lisuyun/p/3974066.html

学习C/C++编程知识提升C/C++编程能力,欢迎关注UP一起来成长!
另外UP在主页仩传了一些学习,有兴趣或者正在学习的小伙伴一定要去看一看哦!会对你有帮助的~
}

我要回帖

更多关于 C语言指针变量 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信