在类型强制转换中(int **)p与(int *)*p与*(int *)p有什么区别?

2025-03-11 01:03:49
推荐回答(3个)
回答1:

(int **)p;//强制将变量p转换成指向 int类型指针变量的 指针(转换后p是指向指针的指针)

(int *) *p;//强制将变量 *p 转换成指向 int类型的指针变量,(*p当成整体做强制转换,这么看来,p也可能是一个指向指针的指针)

*(int *)p;//强制将变量p转换成指向int类型变量的指针,再取这个指针变量指向的值
相当于*((int *)p);

回答2:

(int **)p指的是把p的值强制转换为int型的二重指针值的类型
(int *)*p指的是把p所指向的变量的值强制转换i为nt型的指针值的类型
*(int *)p指的是把p的值强制转换为int型的指针值的类型,然后再取得这个值所指向的变量的值

回答3:

示申佥11|当前分类:20 级排名:139(int **)p;//强制将变量p转换成指向 int类型指针变量的 指针(转换后p是指向指针的指针)

(int *) *p;//强制将变量 *p 转换成指向 int类型的指针变量,(*p当成整体做强制转换,这么看来,p也可能是一个指向指针的指针)

*(int *)p;//强制将变量p转换成指向int类型变量的指针,再取这个指针变量指向的值
相当于*((int *)p);赞同(int **)p指的是把p的值强制转换为int型的二重指针值的类型
(int *)*p指的是把p所指向的变量的值强制转换i为nt型的指针值的类型
*(int *)p指的是把p的值强制转换为int型的指针值的类型,然后