c语言,关于指针

c语言,关于指针第3题中的(3)(4)(5)该怎么理解?求详细过程
2024-12-03 06:13:03
推荐回答(2个)
回答1:

不知道你是否有看清楚题意

(3)、指针加*,指向指针加**,假设有一个整形的指针变量为*p,那么如何再定一个变量指向*p呢,自然是int **pp;
(4)、如果pp是指向指针的指针,也就是双重指针,那么p为指针,将指向指针的指针指向指针自然就是**pp=&p;
(5)、双重指针取值和赋值,**pp就是取值,赋值就是**pp=,那么假设**pp已存放k的值,将k的值翻倍就是**pp*2,然后再将值赋予**pp就是**pp = **pp * 2,又由于算数运算符大于指针运算符,所以给加上(),优先运算指针运算符将值取出来,然后用c的语法糖*=简化代码
不知道你是否真的理解了指针或者是题意,这里的回答避免不了复杂的叙述,将简单事物说的复杂不是难事,将复杂的事物叙述简单才是难事,可是要把1+1为什么等于2这件事说清楚更是难事。

回答2:

(3)(4).int **pp;定义了一个整型二级指针pp,pp也是一个指针变量,只不过它存储的是指针p的地址,而指针p存储的是k的地址.
(5):*=是赋值运算符,a*=b时,等价于a=a*b。
*pp表示的是p的值,即为k的地址,**pp即为k;k*=2,等价于k=k*2,即为将k增加一倍。
满意请采纳,不懂请追问。