搜索
您的当前位置:首页正文

指针相关运用

来源:爱go旅游网

指针相关运用


转自:
最近写了一个小程序,遇到一点小问题,是关于指向字符串的指针的。由此一发不可收拾,好奇心驱使我决定研究一下指针的初始化和赋值规则。略有所得之后,执笔记下,以备后用。

1、指针的初始化

初看起来,指针的初始化和赋值好像很混乱,又是*,又是&,时不时又出来一个数组。其实总结起来很简单:

int *p;

int a=25;

int b[10];

int *m=&a;

int *n=b;

int *r=&b[0];

指针的定义如上所示,以*打头的变量代表该变量为指针变量。

Int *s=15;

Int *s={2,3,5};

Int *s=a;

以上这三种初始化方式都是错误的。

2、指针的赋值

P=m;

P=&a;

P=b;

*p=25;

*p=a;

*p=b[4];

指针相关的赋值,“=”的左操作数可以是*p,也可以是p。

3、   “特殊情况”

那么,下面这个又如何解释呢:

Char *cp=”abcd”;

由此引出,如何使用字符串对指针赋值呢?只有采用下面这种方式:

Cp=”mnop”;

另外,这个初始化过程还有另一层隐含的意思:”abcd”是字符串常量,在初始化过程中并没有发生字符串的复制,而只是简单的将指针指向该字符串常量,因此,不可以通过*cp修改该字符串的值,因为该字符串为常量。当然,我们可以使用“cp=”来修改指针指向的字符串,指针本身并不是常量。

这点上与char ca[]=”abcd”;是不同的,通过ca[x]可以修改字符串中的数据。

4、   C语言的经典著作

最后,顺便提一下C语言的经典好书。主要有下面几本:

《The C Programming Language》(C程序设计语言),C语言之父所著,短短二百多页就可以把C语言的各种细节描绘得清清楚楚,不可不谓经典。比起国内四五百页,却不知其所云的C语言程序设计来,真是天壤之别。

《C专家编程》,该书第一版于2002年由人民邮电出版社引进,之后曾一度绝版。最近传出要再版的消息,令人不能不兴奋。同时,这本书也是我近期想要收藏的。

转载于:https://www.cnblogs.com/GL-BBL/archive/2012/08/19/2646444.html

因篇幅问题不能全部显示,请点此查看更多更全内容

Top