蓝盟IT外包,EasyC、c指针初探

发布者:上海IT外包来源:http://www.lanmon.net点击数:1224

蓝盟IT小贴士,来喽!
指针的初始搜索
前言
可以说c是成也的指针,败也的指针。 通过指针,可以灵活操作变量存储器地址,实现许多独特的功能。 但是,由于指针的原因,特别是使用不当时会产生很多问题。 由于许多工程师对c和指针深恶痛绝,c之后的许多语言都放弃了Java和Python等指针的设计。
先放下头疼的内容,先从简单的概念开始吧。
首先,必须明确指针是变量。 即使是同一变量,存储内存地址而不是值这一点也很特殊。 存储器地址顾名思义是被保存在存储器中的地方,对于指针以外的变量,也可以使用操作员取得其地址。 因此,在使用scanf导入变量时,必须在变量名称之前加上符号。
国际航空运输协会;
扫描(' % d  ',a  );
目的是将a变量的地址传递给scanf函数,并将在画面上读取的内容写入与a变量相对应的地址。
虽然可以直接输出变量的地址,但输出结果是表示内存位置的十六进制数。 如果是学过汇编的人,或者知道基础的人,应该不太清楚。 这个输出结果是给机器看的,人类无法读取。
国际航空运输协会;
cout小于a小于endl;
声明和初始化
指针与普通变量不同,它存储地址。 所以在声明指针的时候,也有一点不同。 我们用*符号做指针。 * *运算符称为间接值(indirect  value  )或取消引用。 现在理解这两个概念可能有点困难,但没关系。 请把那个放着。 请只记住使用*创建指针,如下所示。 * *写在类型和变量名的中间。
英特尔* P;
我们就这样做了一个int型指针。 它的名字叫p。 关于* *的位置,有人喜欢紧跟在变量类型之后,也有人喜欢紧跟在变量名称之后。 其实哪个都行。 取决于个人喜好。 传统上c程序员喜欢后者,强调ptr是一个指针。
int  *ptr;
c程序员喜欢前者,强调是int型的指针:
int* ptr;
哪个都行。 对编译器来说没有什么区别。 但是,对于每个指针变量* :
国际航空运输协会,*ptr;
如上所述,指针的值是地址,因此在初始化指针或为其赋值时,必须使用地址符号。int  a=3;
int  *p=a; 得到了//A的地址
如果有指针变量,可以使用*访问它指向的内存地址的值。
int  a=3;
int  *p=a;
cout小于*p,小于endl; //output: 3
应该注意的是,由于指针p指向了a的地址,因此在更改了p在*符号中所指向的值之后,a的值也同样会发生变化。
*p=5;
cout小于a小于endl; //output: 5
正因为指针有这样的特性,所以使用时请务必注意……
文/上海蓝盟  IT外包专家
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部