指针的定义方法,指针和变量的关系
1个回答
展开全部
定义方法:
数据类型 *指针变量名;
如定义一个指向int型变量的指针——
int *p;
则我们可以继续写如下代码——
int a = 4;
p = &a;
printf("%d", *p);
在这里,我们定义了一个变量a,我们把它理解为内存空间连续的4个字节(int型占用4字节),则这4个字节的空间保存着一个数4。&是取地址符号,即把变量a的地址(即这4个字节的首地址)赋给指针p(记住指针p的类型和变量a的类型要保持一致,否则的话,要进行类型转换)。这样子,指针p就保存着变量a的地址。我们如果把指针p当做内存空间里面另外一个连续的4个字节,那么这4个字节保存的数就是变量a的地址。printf("%d",*p)和printf("%d",a)的结果是一样的。这里的*是取变量符号(与&刚好作用相反,通过变量的地址找到变量),与定义时int *p的*号作用不同(定义时的*表示该变量是个指针变量,而非是取它指向的变量)。
指针在C语言学习中是一个很重要的部分,在将来数据结构中也会大量用到,你可以多看看书上的例题来掌握它。推荐你翻阅谭浩强著的《C程序设计》第10章。
希望我的回答对你有帮助,祝你好运。
数据类型 *指针变量名;
如定义一个指向int型变量的指针——
int *p;
则我们可以继续写如下代码——
int a = 4;
p = &a;
printf("%d", *p);
在这里,我们定义了一个变量a,我们把它理解为内存空间连续的4个字节(int型占用4字节),则这4个字节的空间保存着一个数4。&是取地址符号,即把变量a的地址(即这4个字节的首地址)赋给指针p(记住指针p的类型和变量a的类型要保持一致,否则的话,要进行类型转换)。这样子,指针p就保存着变量a的地址。我们如果把指针p当做内存空间里面另外一个连续的4个字节,那么这4个字节保存的数就是变量a的地址。printf("%d",*p)和printf("%d",a)的结果是一样的。这里的*是取变量符号(与&刚好作用相反,通过变量的地址找到变量),与定义时int *p的*号作用不同(定义时的*表示该变量是个指针变量,而非是取它指向的变量)。
指针在C语言学习中是一个很重要的部分,在将来数据结构中也会大量用到,你可以多看看书上的例题来掌握它。推荐你翻阅谭浩强著的《C程序设计》第10章。
希望我的回答对你有帮助,祝你好运。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询