黑马程序员技术交流社区
标题:
自学C时遇到的两个代码小问题,请教大神,欢迎大家讨论!
[打印本页]
作者:
Tigerleis
时间:
2015-3-27 17:20
标题:
自学C时遇到的两个代码小问题,请教大神,欢迎大家讨论!
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中转,谢谢!
作者:
fantacyleo
时间:
2015-3-27 19:16
第一个问题 不知道
第二个问题 没办法 因为{1,20}在尚未赋值给一个变量时,是没有所谓的“地址”概念的。打个比方,你说3这个数在内存中的地址是什么?答案是不知道、没有意义
作者:
1048
时间:
2015-3-27 19:18
有待研究。。。。。
作者:
Tigerleis
时间:
2015-3-27 19:30
fantacyleo 发表于 2015-3-27 19:16
第一个问题 不知道
第二个问题 没办法 因为{1,20}在尚未赋值给一个变量时,是没有所谓的“地址”概念的。打 ...
好吧,第二个问题,应该就是你说的那样咯,谢谢啦O(∩_∩)O~
作者:
oucding
时间:
2015-3-27 20:12
平时这种小细节的应该多多的留意啊,学习了:lol
作者:
hellooc
时间:
2015-3-28 03:29
枚举里不能放这种值,还有,你可以遍历int类型么?
作者:
longer057
时间:
2015-3-28 08:35
第一个问题百度一下有解决方法
作者:
狂甩你十八条街
时间:
2015-3-29 16:19
第一个问题,可以这样解决,不过有点麻烦。你看一下,有不明白的我们可以一起交流。
#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;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2