您的位置:首页 > 其它

菜鸟之路-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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: