A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1、C中没有遍历枚举类型的方法,请问如何实现枚举类型的遍历,并且输出枚举类型里面的所有待选值。
eg:enum Sex{男,女,人妖,不男不女,双性人,有待研究};
        请问各路大神,如何输出以上六个选项?

2、结构体指针数组,如何实现直接赋值?
eg:
struct Student{ int no; int age;}s1={1,20},s2={2,18};  //这种定义赋值是可以的,可读性较差,此处简略写下
struct Student* sp[] = {&s1,&s2};
请问如何直接把{1,20},{2,18}这两个结构体地址初始化给sp指针数组,即不通过s1,s2中转,谢谢!

8 个回复

倒序浏览
第一个问题 不知道
第二个问题 没办法 因为{1,20}在尚未赋值给一个变量时,是没有所谓的“地址”概念的。打个比方,你说3这个数在内存中的地址是什么?答案是不知道、没有意义
回复 使用道具 举报
有待研究。。。。。
回复 使用道具 举报
fantacyleo 发表于 2015-3-27 19:16
第一个问题 不知道
第二个问题 没办法 因为{1,20}在尚未赋值给一个变量时,是没有所谓的“地址”概念的。打 ...

好吧,第二个问题,应该就是你说的那样咯,谢谢啦O(∩_∩)O~
回复 使用道具 举报
平时这种小细节的应该多多的留意啊,学习了:lol
回复 使用道具 举报
枚举里面本质只能存放整型元素吧。
回复 使用道具 举报
枚举里不能放这种值,还有,你可以遍历int类型么?
回复 使用道具 举报
第一个问题百度一下有解决方法
回复 使用道具 举报
第一个问题,可以这样解决,不过有点麻烦。你看一下,有不明白的我们可以一起交流。
#import <Foundation/Foundation.h>

#include <stdio.h>
int main(int argc, const char * argv[]) {
    @autoreleasepool {
      
        //男是0,女是1,gay是2,不男不女是3,正在研究中是5
         typedef enum  {mam, woman, gay, nomannowoman, searching}sex;
        
        sex a ;
        //这里你输入一个整数,0到3对应各种情况,4以后就是正在研究中
        printf("输入一个整数:");
        scanf("%d", &a);
        //我想不到办法了,只想到了switch,知识有限,就帮你到这吧
        switch(a)
        {
            case mam : printf("man\n");
                break;
            case woman : printf("woman\n");
                break;
            case gay : printf("gay\n");
                break;
            case nomannowoman: printf("nomannowoman\n");
                break;
            default: printf("searching\n");
        }
    }
    return 0;
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马