首页 > 其他 > 详细

10枚举,结构,联合

时间:2020-05-04 23:59:06      阅读:122      评论:0      收藏:0      [点我收藏+]

前言:好吧,字符串这章这些函数估计后面又要重新熟悉,毕竟函数有点多。

返回主页:https://www.cnblogs.com/accolade/p/12289618.html

枚举,结构,联合

枚举

技术分享图片

 

 枚举使用是必需带上enum 枚举类型的名字 名字,怎么感觉有点烦呢。

随便写的代码

#include<stdio.h>
#include<stdbool.h>
#include<string.h>
enum color{red,green,yellow,white,colornum};
int iamyoudada(enum color c);
int main(int argc,const char *argv[]){
    
    char *colorchar[]={"red","green","yellow","white"};
    for(int i=0;i <= colornum;i++){
        printf("%d:red=%d\n",i,red);
    }

    int Nm;
    enum color b = 3;
    Nm=iamyoudada(b);
    printf("the result of returnning form funtion iamyoudada:%d\n",Nm);
    printf("%d\n",red);
}
int iamyoudada(enum color c){
    printf("here is the funtion:iamyoudada and the input info is %d\n",c);
    return 1;
}

 

注意:

enum color{red,green,yellow,white,colornum};
int iamyoudada(enum color c);

 

申明函数是,这个枚举必需也要写在外面,好奇怪。不然就会有报错。改了1个小时。

看下老师的代码:

技术分享图片

 

 技术分享图片

 

 上面的代码只能这么写,我是过直接去改原始enum就会报错。

 

由于枚举就是const int,所以函数直接可以穿参数进去。看下面的代码

#include<stdio.h>
#include<stdbool.h>
#include<string.h>

int f(int a);
int main(int argc,const char *argv[]){
    enum color { red, green, white};

    f(red);
}
int f(int a){
    printf("i am the funtion :f\na=%d\n",a);
}

 

i am the funtion :f
a=0

 

 

枚举的小套路

技术分享图片

 

 有时间自己写一下。

结构类型

技术分享图片

 

 技术分享图片

 

 是不是很像python里面的面向对象,但是没有可以调用的函数。所有还是遗憾的。

技术分享图片

 

 

有趣的现象,如果int没有声明的话,便会变成了默认为0,请看下面的代码:

技术分享图片

 

 结构运算

技术分享图片

 

 但是如果是赋值的话,全部都赋值过来了

技术分享图片

 

 指针的结构

技术分享图片

 

 技术分享图片

 

 输出:

技术分享图片

 

 

注意,函数如果传的如果是值,那么修改不会修改到外面结构的属性,如下:

技术分享图片

 

 技术分享图片

 

 解决方案

技术分享图片

 

 当然,这种方法如果结构太大的话,就不可取了。所以我们推荐下面的一种方案。指针传参,先看下下面这句话,翻译一下

技术分享图片

 

 

 

10枚举,结构,联合

原文:https://www.cnblogs.com/accolade/p/12827439.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!