• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

C语言结构体指针的一个问题

PG_CPZ 2018-10-26 浏览量:790
void hshu(  jiegouti *   m );
这个函数的参数应该是个结构体指针吧
1、用jiegouti定义个结构体变量,然后&送给这个函数是不是 ?
2、?????
     还可以这样用:
    jiegouti b[]={数组,每个元素是个结构体};
   调用函数时是这样:hshu(  (jiegouti *)   b );
理解不了。。。。
3、本来这个函数是把一个结构体进行一定的操作。
这样把数组首地址转换成结构体指针,然后不就相当于操作了数组里的第一个结构体吧(b[0])。是这个意思吗?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 结构体本质也是变量的一种,可以定义普通结构体变量、结构体数组、结构体指针等,你用jiegouti*b这个方法就是引入一个类型为jiegouti的指针形参,所以你的实参肯定也是jiegouti的指针类型。操作指针只是传指针的首地址进去,具体操作看你的函数是怎么写的。

    • 发布于 2018-10-26
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:7
  • 假设有结构体如下:

    struct A{

        char a0;

        char a1;

    }

    有函数如下:

    void Fun1(A * pStruct);


    有应用如下:

    A test_a;

    A testArray[5];


    Fun1(&test_a);

    以testArray每个元素作参数:

    for(int i = 0; i < 5; i++){

        Fun1(testArray+i);//这是一种取指针方法

        Fun1(&testArray[i]);//这是另一种方法,和前者等价

    }

    • 发布于2018-10-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 1,改函数的是结构体首地址

    2取b对象的首地址

    3是的

    • 发布于2018-10-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 要彻底明白这个问题,应该深入了解下    数据、地址  在处理器中的本质,需要了解汇编操作处理器的原理,然后你提的这些都不在是问题了。
    • 发布于2018-10-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 这是同一数据类型的指针和数组,数组元素b也即是该数组的首地址,与指针的作用是一样的。
    • 发布于2018-10-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个jiegouti是一个用typedef struct定义的结构体来的
    • 发布于2018-10-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个是一个指针的方式,实际来说结构体里面的成员变量也是可以用指针的方式来处理的
    • 发布于2018-11-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 表示你的一个实际的结构体作为指针来进行函数的参数传递
    • 发布于2018-12-09
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

C语言结构体指针的一个问题