02.函数和指针

来源:互联网 发布:淘宝联盟如何省钱 编辑:程序博客网 时间:2024/06/06 17:55
宏 #define

     宏只是一个单纯的替换,#define N 66 表示的是下面只要有N的地方,表示的都是66 ,但是给N赋值是非法的,N不可以改变

     宏是没有类型的,你可以这样定义
                         #define T(a,b)    ((a)*(b))
     也可以这样 
                         #define P(n)     printf(“%d\n”,n);

                         只有你想不到的,没有宏替换不了的。
——————————————————————————————————————————————

只读变量 const  

     在定义只读变量的时候,一定要初始化

                                   *****宏和只读变量的区别   
                                                            1.宏是没有类型的,只是单纯的替换。
                                                            2.const修饰的是变量,不能直接引用内存空间  
————————————————————————————————————————

数据类型的别名  typedef

用法:typedef  现有类型  别名

            typedef  int   age             之后就可以用age来定义变量类型,比如 age age; 定义了一个int类型的变量,变量名是age

          好处:
                    1.通过类型就知道变量存的是什么
                    2.方便记忆,方便阅读
————————————————————————————————————————————
字节:

     变量在内存中占用的空间 

sizeof();

————————————————————————————————————————————————

指针初步:

总感觉对于指针,说多少都不算多,这里算是C语言比较重要的地方了。

指针变量是个什么东西,里面不过是装了一个变量的地址,你可以通过这个空间的名字找到这个变量,也可以通过这个空间的地址找到这个变量,指针就是后面这种找法,不要把它理解为很难的东西。


1.对变量的三种操作:  读,写,取地址。

2.指针变量*p是一个四个字节,16进制,32位的装着地址的东西

3.指针如果装着一个家伙的地址,那么*p就是这个家伙的名字

4.指向指针的指针
                              也不过是个指针变量,不过里面装的是一个指针变量的地址。

5.指向只读变量的指针

                                        const int *p    这个指针是指向只读变量的 
                                        int * const p   这个指针是只读的
                                        const int * const p   这个指针是只读的,而且指向一个指针变量   



*的三种作用:
                         1.左右都是数字,表示乘法
                         2.*的右面是地址,间接引用
                         3.定义变量的时候有*,定义一个指针变量

————————————————————————————————————————————————

数组:

          数组就是系统分配一块连续的内存空间而且类型相同,是复合的数据类型。

     
     定义一个数组 int as[元素数量] = {对元素初始化,没初始化则都为0};


数组的名字是一个常量,数组的名字在和sizeof还有&结合的时候,代表数组的整个空间

例如:int as[10];  sizeof(as) 的值为40,因为每个元素都是一个int,所以10个元素一共占40个字节

 []的三种作用:
               1.定义变量的时候,[]代表定义一个数组
               2.地址的右面有[]并且有数字,叫下表运算
               3.函数的形参如果有[],代表这个家伙是一个指针

&as: 取整个数组的首地址
as : 首个元素的首地址(数组的名字)

用冒泡法,排序一个数组。

#include<stdio.h>

int main()
{
  int as[10] = {213,456,123,123,124,345,134,213,123,123};
  int i;
  int j;
  int shu;
  for(j = 9; j > 0 ; j--)
    {
      for(i = 0; i < j; i++)
     {
       if(as[i] < as[i+1])
         {
           shu = as[i];
           as[i] = as[i+1];
           as[i+1] = shu;
         }
     }
    }

  for(i = 0; i <= 9; i++)
    {
      printf("%d\n",as[i]);
    }
  return 0;
}
————————————————————————————————————————————————————————————————————————
















































0 0
原创粉丝点击