菜鸟之路-06
2015-10-26 21:07
357 查看
枚举的定义:
语法:
enum 枚举名{
选项1,
选项2,
.....
选项n
};
注意:选项之间用,隔开,最后一个不要加,并且大括号后面一定要加上;
声明枚举变量
语法:enum
枚举名 变量名;
例: enum caiquan q;
q=石头;
枚举的作用详细说明:
1.枚举项是什么?
就是一个整数,默认情况下,枚举项从0开始,然后依次递增
所以注意:声明一个枚举类型的变量,就相当于声明一个int类型的变量
例:enum quanHead q1;
相当于 int q1;
2.枚举项可以指定起始的值,比如说,指定10以后,后面的就是11,12,13…………
enum direction{
up = 10, //10
down, //11
left, //12
right //13
};
注意:指定起始值的“ =
数据” 写在,前面
3.枚举项的值可以随意指定,只不过它后面的值如果没有指定的话,会在它的值的基础上依次递增
例:
enum direction{
up = 10, //10
down, //11
left=30, //30
right //31
};
4.枚举项的值不能指定为小数,否则报错
5.枚举项的值可以重复
例:
enum direction{
up = 10, //10
down, //11
left=11, //11
right //12
};
6.枚举项不能重复
例:
enum direction{
up = 10, //10
down, //11
left=11, //11
up, //报错
right //12
};
7.枚举的作用:方便程序员看懂源代码
8.不能直接输出枚举项
9.枚举变量可以赋任意的整数值,为什么??因为枚举变量就是int变量
B.指针的运算
指针只能做加减,不能乘除,取余。
0x7fff5fbff7bc p
0x7fff5fbff7c0 p+1*sizeof(int ) 加是类型的字节数
指针跟整数相加
结果是个地址
0x7fff5fbff7b8 p2
p-p2=1 {(p-p2)/sizeof(int)}
指针只能跟自己类型相同的运算。
作用:利用指针来遍历数组。
#include <stdio.h>
enum caiquan{
剪刀,
石头,
//注意:枚举项里可以写中文,也可以写英文,但是推荐写英文
布
};
int main(int argc,
const char * argv[]) {
// insert code here...
printf("Hello, World!\n");
return 0;
}
1)指针函数:就是函数的返回值是个指针的时候,就叫指针函数
语法:类型 *
函数名(参数列表){ //类型是:类型 *
(*号可以放在两者之间的任何位置)
函数体;
}
作用:只能返回全局变量或者返回字符串常量,还可以返回静态变量的地址
局部变量:是放在内存中的栈区,出了作用域就会被回收。
2)函数指针的介绍:
函数的指针,就是一个指针。指向函数的指针,就是一个函数的指针。
语法:返回值类型(*指针变量)(参数列表);例
代码块
3)结构体指针:指向结构体变量的指针叫结构体指针。
struct 结构体名称 *指针变量名
例 struct Person *p
类型:struct Person p:指针变量的变量名
#include <stdio.h>
void test(){
printf("你好\n");
}
int test1(int num1,int num2){
return num1+num2;
}
//以下是结构体指针
typedef struct {
char name[50];
int age;
}Person;
int main(int argc,
const char * argv[]) {
void (*ptest)()=test;//无返回值
无参数的指针函数 test后面千万不能加上()
(*ptest)();
int (*p1test1)(int ,int )=test1;
//有参有返回值的指针函数
//(*p1test1)(23,32); (1)两种不同使用指针的方法
// p1test1(23,32); (2)
printf("%d\n",p1test1(23,32));
//以下是结构体指针
Person p={"毛毛",12};
Person pArr[5];
pArr[5]=(Person){{"毛毛",12},{"毛毛",12}};
//里面{}是个pArr[5]的数组
所以要加{}
pArr[0] =(Person){"毛毛"};
Person *pp;
pp=&p;
*pp=p;//这里可以看出*pp=p
printf("age=%d\n",pp->age);
//这是取值的两种方法
printf("age=%d\n",(*pp).age);
//看赋值两种方法
(*pp).age=18;
printf("age=%d\n",(*pp).age);
pp->age=10;
printf("age=%d\n",pp->age);
return 0;
}
语法:
enum 枚举名{
选项1,
选项2,
.....
选项n
};
注意:选项之间用,隔开,最后一个不要加,并且大括号后面一定要加上;
声明枚举变量
语法:enum
枚举名 变量名;
例: enum caiquan q;
q=石头;
枚举的作用详细说明:
1.枚举项是什么?
就是一个整数,默认情况下,枚举项从0开始,然后依次递增
所以注意:声明一个枚举类型的变量,就相当于声明一个int类型的变量
例:enum quanHead q1;
相当于 int q1;
2.枚举项可以指定起始的值,比如说,指定10以后,后面的就是11,12,13…………
enum direction{
up = 10, //10
down, //11
left, //12
right //13
};
注意:指定起始值的“ =
数据” 写在,前面
3.枚举项的值可以随意指定,只不过它后面的值如果没有指定的话,会在它的值的基础上依次递增
例:
enum direction{
up = 10, //10
down, //11
left=30, //30
right //31
};
4.枚举项的值不能指定为小数,否则报错
5.枚举项的值可以重复
例:
enum direction{
up = 10, //10
down, //11
left=11, //11
right //12
};
6.枚举项不能重复
例:
enum direction{
up = 10, //10
down, //11
left=11, //11
up, //报错
right //12
};
7.枚举的作用:方便程序员看懂源代码
8.不能直接输出枚举项
9.枚举变量可以赋任意的整数值,为什么??因为枚举变量就是int变量
B.指针的运算
指针只能做加减,不能乘除,取余。
0x7fff5fbff7bc p
0x7fff5fbff7c0 p+1*sizeof(int ) 加是类型的字节数
指针跟整数相加
结果是个地址
0x7fff5fbff7b8 p2
p-p2=1 {(p-p2)/sizeof(int)}
指针只能跟自己类型相同的运算。
作用:利用指针来遍历数组。
#include <stdio.h>
enum caiquan{
剪刀,
石头,
//注意:枚举项里可以写中文,也可以写英文,但是推荐写英文
布
};
int main(int argc,
const char * argv[]) {
// insert code here...
printf("Hello, World!\n");
return 0;
}
1)指针函数:就是函数的返回值是个指针的时候,就叫指针函数
语法:类型 *
函数名(参数列表){ //类型是:类型 *
(*号可以放在两者之间的任何位置)
函数体;
}
作用:只能返回全局变量或者返回字符串常量,还可以返回静态变量的地址
局部变量:是放在内存中的栈区,出了作用域就会被回收。
2)函数指针的介绍:
函数的指针,就是一个指针。指向函数的指针,就是一个函数的指针。
语法:返回值类型(*指针变量)(参数列表);例
代码块
3)结构体指针:指向结构体变量的指针叫结构体指针。
struct 结构体名称 *指针变量名
例 struct Person *p
类型:struct Person p:指针变量的变量名
#include <stdio.h>
void test(){
printf("你好\n");
}
int test1(int num1,int num2){
return num1+num2;
}
//以下是结构体指针
typedef struct {
char name[50];
int age;
}Person;
int main(int argc,
const char * argv[]) {
void (*ptest)()=test;//无返回值
无参数的指针函数 test后面千万不能加上()
(*ptest)();
int (*p1test1)(int ,int )=test1;
//有参有返回值的指针函数
//(*p1test1)(23,32); (1)两种不同使用指针的方法
// p1test1(23,32); (2)
printf("%d\n",p1test1(23,32));
//以下是结构体指针
Person p={"毛毛",12};
Person pArr[5];
pArr[5]=(Person){{"毛毛",12},{"毛毛",12}};
//里面{}是个pArr[5]的数组
所以要加{}
pArr[0] =(Person){"毛毛"};
Person *pp;
pp=&p;
*pp=p;//这里可以看出*pp=p
printf("age=%d\n",pp->age);
//这是取值的两种方法
printf("age=%d\n",(*pp).age);
//看赋值两种方法
(*pp).age=18;
printf("age=%d\n",(*pp).age);
pp->age=10;
printf("age=%d\n",pp->age);
return 0;
}
相关文章推荐
- 注册、卸载系统服务
- 数据库的封装包
- 在VC6中调试MEX文件
- 不能坚定,回忆2003年
- Log4net中的RollingFileAppender z
- 每天被面试虐一点点(二)
- DSAPI.dll函数查看器
- C语言实现栈
- 教学目标的表述方式──行为目标的ABCD表述法
- JSP的学习(2)——语法知识一
- 51nod 1010 只包含因子2 3 5的数 (打表+二分)
- 第十四周第一天
- POJ 1651 Multiplication Puzzle(区间DP)
- js图片懒加载资源引用
- 黑马程序员_毕向东_Java基础视频教程第02-03天_20151026(一)
- Log4Net在Windows服务中不能记录日志 z
- Linux新建用户
- leetcode:两个数的和||
- JavaScript之射击类小游戏的简单示例
- iOS 中UIButton的 settitle 和 titlelabel的使用误区