基地123 2022-12-07 10:22 采纳率: 90.2%
浏览 35
已结题

C语言程序中的关于传参的一些疑问


/*循环队列 基本操作:初始化、取队头元素、取队尾元素、判断队空、判断队满、入队、出队、求队列长度*/ 
#include <stdio.h>
#include <stdlib.h>
 
#define OK    1
#define ERROR 0
#define LENGTH 10 
typedef int ElemType;
typedef int Status;
 
typedef struct SqQueue{
    ElemType *base; //初始化时动态分配存储空间 
    int  front;
    int  rear;
}SqQueue;
 
/*Function:循环队列初始化*/ 
Status Init_SqQueue(SqQueue *q){
    q->base=(ElemType *)malloc(LENGTH*sizeof(ElemType));//分配空间 
    if(!q->base){
        return ERROR; 
    }
    q->front=q->rear;
    printf("对初始化成功!\n");
    return OK;
}
/*Function:求循环队列长度*/
int QueueLength(SqQueue q){
    return (q.rear-q.front+LENGTH)%LENGTH;
} 
/*FUnction:入队*/
Status EnQueue(SqQueue *q){
    ElemType e;
    if((q->rear+1)%LENGTH==q->front){
        return ERROR;
    }
    printf("请输入入队元素:\n");
    scanf("%d",&e);
    q->base[q->rear]=e;
    q->rear=(q->rear + 1) % LENGTH; //队尾指针加1
    printf("入队成功 \n");
    return OK;
} 
/*function:出队*/
Status OutQueue(SqQueue *q){
    if(q->front==q->rear){
        return ERROR;
    }
    printf("%d出队\n",q->base[q->front]);
    q->front++;
    return OK;
}
/*Function:取队头元素*/
ElemType getQueueFront(SqQueue q){
    if(q.front!=q.rear){   //非空 
    return q.base[q.front];
    }
}
/*Function:取队尾元素*/
ElemType getQueueRear(SqQueue q){
    if(q.front!=q.rear){
        q.rear--;
        return q.base[q.rear];
    }
} 
/*Function:判断队是否为空 */
Status isEmpty(SqQueue q){
    if(q.front==q.rear){//为空 
        return OK;
    }else{
        return ERROR;
    }
}
/*Function:判断队是否已满 */
Status isFull(SqQueue q){
    if((q.rear+1)%LENGTH==q.front){//已满 
        return OK;
    }else{
        return ERROR;
    }
}
void main(){
   SqQueue s;
   ElemType e;
   Init_SqQueue(&s);
   EnQueue(&s);
   EnQueue(&s);
   EnQueue(&s);
   OutQueue(&s);
   e=getQueueFront(s);
   printf("队头元素为:%d\n",e);
   e=getQueueRear(s); 
   printf("队尾元素为:%d\n",e);
   if(isEmpty(s)){
       printf("队为空!\n");
   }else{
       printf("队非空!\n");
   }
}

对此程序中主程序有疑问,就是传递参数时传递s和&s有什么区别

  • 写回答

4条回答 默认 最新

  • Huazie 全栈领域优质创作者 2022-12-07 10:31
    关注

    s : 表示 结构体变量
    &s : 表示 结构体变量的地址,这是常量 【结构体指针,可以指向 这个】

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 12月15日
  • 已采纳回答 12月7日
  • 创建了问题 12月7日

悬赏问题

  • ¥15 Opencv配置出错
  • ¥15 模电中二极管,三极管和电容的应用
  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?