指针变量概念

指针又叫地址。

类型名  *指针变量    int  *a;指针变量前面的*表示该变量的类型是指针型变量,指针变量名是a,而不是*a

指针变量:就是一个其值为另一个内存地址的变量(指针是修饰语);

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

int  *a;

警告:

C在本质上是一种自由形式的语言,这很容易诱使你把星号写在靠近类型的一侧,如下所示

int*  a;

这个声明与前面一个声明有相同的意思,而且看上去更为清楚,a被声明为类型是int*的指针。但是这并不是一个好技巧,原因如下:

int*  b, c, d;

人们很自然的以为这条语句把所有三个变量声明为指向整型的指针,但事实并非如此。我们被它的形式愚弄了,星号实际上是表达式*b的一部分,只对这个标识符有用。b是一个指针,但其余两个变量只是普通的整型。要声明三个指针,正确的语句如下:

int  *b, *c, *d;

     

在声明指针变量时,你也可以为它指定初始值。这里有一个例子,它声明了一个指针,并用一个字符串常量对其进行初始化;

char  *message="Hello world";

这条语句把message声明为一个指向字符的指针,并用字符串常量中第一个字符的地址对该指针进行初始化。

警告:

这种类型的声明所面临的一个危险是你容易误解它的意思。在前面一个声明中,看上去初始值似乎是赋给表达式*message,事实上它是赋给message本身的。换句话说,前面一个声明相当于:

char  *message;
message="Hello world";

  

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值