有关a,指针,指针的指针的三个操作

文章详细解释了C语言中变量a、指针p和指针的指针q的定义及操作,包括变量值、地址的输出和指针的*和**操作,帮助理解内存地址和指针的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假设我们现在定义有三个变量。

#include<stdio.h>    定义的时候是这样定义的,要与使用的时候区分
int main(){
    int a=10;//定义
    int *p=&a;//定义
    int **q=&p;//定义
}

int a=10;    表示   a赋值为10     a的类型是int类型

a的地址用&a表示
int *p=&a;    表示  p赋值为(a的地址)      p的类型为int *



int **q=&p;    表示    q赋值为(p的地址)    q的类型为int **


因此:把类型去掉(把迷惑你的东西去掉)

a=10

p=&a => *p就是  取p的内容  p呢是a的地址,替换一下  得出 取(a的地址)的内容,那就是a的值

q=&p => *q就是  取q的内容  q呢是p的地址 替换一下  得出 取(p的地址)的内容,那就是p的值
                    p的值是什么呢 p=&a 因此 再替换一下  得出 p的值是a的地址


 

对于变量a来说,有两个操作。 a,&a

操作一:输出a的值。

printf("a=%d",a);

操作二:输出a的地址。

printf("a的地址=%p",&a);

 对于指针p来说,有三个操作  p,&p,*p

操作一:输出*p,就是a的值。

printf("*p=%d",*p);//p的*操作,是取p里面的值,就是a的值
printf("a=%d",a);

操作二:输出p,就是a的地址

printf("p=%p",p);//因为p=&a所以直接输出p就是a的地址
                 //也可以看出*p是对a的地址取*操作,是a的值
printf("&a=%p",&a);

操作三:输出&p,就是p的地址

printf("&p=%p",&p);

 对于指针的指针q来说,有四个操作 q &q *q **q

操作一:输出q的,就是p的地址

printf("q=%p",q);

操作二:输出&q,就是q的自己的地址

printf("&q=%p",&q);

操作三:输出*q ,就是a的地址

printf("*q=%p",*q);

操作四:输出 **q,就是a的值

printf("**q=%d",**q);

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值