标题: 初学者求c语言解析int**p、**(int)p、(int*p) [打印本页]

作者: 牛板筋    时间: 2021-10-20 00:29
标题: 初学者求c语言解析int**p、**(int)p、(int*p)
int**p、**(int)p、(int*p)分别什么含义
太晕了呀
作者: 啤酒瓶子老大    时间: 2021-10-20 03:24
*P是指针的意思,多看看C语言关于指针方面的资料.
作者: 981025    时间: 2021-10-20 08:05
二级指针、
作者: 981025    时间: 2021-10-20 08:05
二级指针、强制类型转换、一级指针
作者: 牛板筋    时间: 2021-10-20 10:07
981025 发表于 2021-10-20 08:05
二级指针、强制类型转换、一级指针

好的谢谢
作者: xstong    时间: 2021-10-20 10:44
int**p 二级指针,后面两个写法,语法规则上应该是有抒写错误的!
对于指针,只要理解了内存存储关系,也很好理解!
记住一点,无论是指针、数组名还是变量名,甚至是函数名称,都只是代表内存地址空间的一个地址号而已。只是对应地址号的内存位置,存储的数据内容代表意义不同而已,可能是一个用于计数的变量数值,又或者是用于访问另一个变量等的地址号。这些存储的内容原则上可以任意转换,在语法上表示就是所谓的强制类型转换。

另外,指针可以通过变换抒写方式,提高可读性。
例如:int data[10] ;   int *pData;   当pData = data时, pData[0] 等价于 data[0]

作者: 牛板筋    时间: 2021-10-20 10:48
xstong 发表于 2021-10-20 10:44
int**p 二级指针,后面两个写法,语法规则上应该是有抒写错误的!
对于指针,只要理解了内存存储关系,也 ...

好的谢谢
作者: 773208906    时间: 2021-10-20 16:09
多级指针的意思
作者: longfengjushi    时间: 2021-10-31 17:14
#include<stdio.h>
#include<stdlib.h>
int main(){
    int *z(int *p); //指针作为函数参数
    int **p;  //指向指针的指针
    //**(int)p  首先括号与int结合 对p进行强制转换 此时就是一个整型变量 但是在变量前加*运算符 是错误的
    int b = 0;
    int *c;
    c = &b; //c->b
    p = &c; //p->c
    z(c);
    printf("%d\n",b);
    printf("%d\n",**p);
    return 0;
}
int* z(int *p){
    *p = *p + 1;
    printf("指针作为函数参数:%d\n", *p);
    return p;
}





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1