指针变量概念

指针又叫地址。

类型名  *指针变量    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";

  

  

原文地址:https://www.cnblogs.com/prayer521/p/5595886.html