C语言指针中*的作用——定义指针变量和取值

C语言中指针是很重要的,也是比较难理解的。

 

但是我认为指针其实也没那么难,只要我们知道指针它到底是什么?知道它的本质,那么理解起来就会更加的简单了。

 

指针我们可以把它理解成为一个变量,就像int double float一样就行。

 

int *

float *

double *

都是指针变量

 

不过指针变量它的值是一个地址,比如一个int num = 1; 这个num在内存里面有一个地址,假如num的地址是0x100 我们用int *p = #

实现了把num的地址放在了变量p里面,那么printf(“%d”,p);就会输出0x100

 

*有两种含义

在上面这种情况下*是定义一个指针变量,就是在*前面有一个类型,那么*就是表示一个定义语句。

如果*前面没有类型,就是表示取值。

 

假如我们有一个地址0x100 对这个地址取值那么就会拿到这个变量的值,也就是num的值,即1

指针变量p它的值就是一个地址,num的地址。

我们对p取值 即*p  *p它的值就是num的值 即*p是等于1的

printf(“%d”,*p);

上面者条语句是输出1

 

printf(“%d”,*&num);

这条语句也是输出num的值1

 

可以运行一下下面的代码,加深一下对指针和*的理解

#include <stdio.h>
int main(){
	int num = 100;
    int *p = &num;
	printf("num的值                                                  %d\n",num);
	printf("指针p的值(通过变量名获取)                              %d\n",p);
	printf("指针p的值 (通过取值符号*获取)                          %d\n",*&p);
	printf("指针p的地址                                              %d\n",&p);
	printf("指针*p是指针指向的变量的值即num的值                      %d\n",*p);
        printf("通过*和num的地址取得num的值                              %d\n",*&num);
	*p = 1000;//改变num的值 等价与num = 1000;
	printf("通过指针取值改变num的值                                  %d\n",num);
    return 0;
}

输出结果如图

c语言指针

 

© 版权声明
THE END
喜欢就支持一下吧
点赞2 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容