• C语言学习(11)


    C语言的关键字

    static、const、typedef、extern、define……

    动态内存分配:malloc、calloc。realloc分配的内存

      (1)static和extern配合

       第一种修饰变量

        修饰全局变量:正常情况下(没有用static修饰)全局变量可以在定义它的文件中使用,也能在其它文件中使用(extern声明一下即可);

         static修饰了全局变量,相当于限制了全局变量的作用范围(该全局变量只能用于定义的那个文件,其它文件不能使用,哪怕extern声明也不行)

        修饰局部变量:(实际开发往往用来修饰统计变量) 表示这个局部变量只能被初始化一次;

       第二种修饰函数

        正常情况下(没有用static修饰)函数可以在定义它的文件中使用,也能在其它文件中使用(extern声明一下即可);

        static修饰了函数,相当于限制了函数的作用范围(该函数只能用于定义的那个文件,其它文件不能使用,哪怕extern声明也不行);

      (2)extern

       第一种:声明外部的全局变量;

       第二种:声明外部的函数 ;

      (3)const

       第一种:修饰常量(常量是只读,不能修改)

        const  int  a=9;  //定义了一个常量a;

       第二种:修饰指针 

        int  a=99;

        写法一  const int  *p=&a;      //写法一和写法二是等价,表示这个指针不能修改它指向的地址中的内容(实际开发中,防止指针修改你地址中的内容)

        写法二  int const  *p=&a; 

        写法三  int *const p=&a; //p可以访问a的值,也能修改a的值,但是不能指向其它变量的地址(你可以认为p跟a的地址捆绑在一起了)

      (4)typedef  类型重定义

        作用:给C语言原本的数据类型改个名字(增强可读性,便于移植程序)

        u8 --》类型没有见过  typedef  unsigned  char u8;

      写法一:给基本数据类型换名字

        typedef  int   zhengshu;

      写法二:给指针换名字

        公式: typedef  指针原本的定义; 

        typedef  char *pp;   //给char *换个名字叫做pp, pp不是变量名,是类型名

        typedef  char (*p)[10];  //给char (*)[10]数组指针换了名字,叫做p   p不是变量名,是类型名

      写法三:给数组换名字

        公式: typedef  数组原本的定义;

        typedef  char  buf[10];  //buf不是数组名,是类型名  char [10]类型 

     1 #include <stdio.h>
     2 //把int换个名字
     3 typedef int zhengshu;  //zhengshu以后作为int直接使用
     4 typedef char *pp;  //pp以后可以作为char *类型直接使用
     5 typedef char (*charpp)[10]; //charpp以后可以作为char (*)[10]类型直接使用
     6 typedef int array[10];  //array以后可以作为int [10]类型直接使用
     7 int main()
     8 {
     9     int a=99;
    10     zhengshu b=88;  //等价于int b;
    11     printf("b is:%d
    ",b);
    12     
    13     //传统定义char *指针  char *p=buf;
    14     char buf[10]="hello";
    15     pp p=buf; //char *p=buf
    16     printf("p is:%s
    ",p);
    17     
    18     //传统定义char (*)[10]
    19     charpp point=&buf;  //char (*point)[10]=&buf
    20     
    21     //传统定义数组  int c[10];
    22     array c;  // int c[10]
    23     c[0]=99;
    24     c[1]=88;
    26 }

    C语言主函数传参

      C语言主函数的写法:

      void  main()

      int   main()

      int   main(int argc,char **argv)  //  ./a.out   hello    hehe

      int   main(int argc,char *argv[])

      argc --》参数个数、argv[0] --》第一个参数、argv[1] --》第二个参数。

      注意:主函数传参,传递的参数默认当成字符串处理

  • 相关阅读:
    服务端TextBox焦点事件
    Ajax进度条动画制作网址
    ADSL错误代码大全
    ASP.NET MVC Framework体验(5):路径选择(URL Routing)(转)
    为表添加一列IsUpload默认值为0
    ASP.NET MVC Framework体验(3):表单提交(转)
    .NET开源项目
    Vista文件共享
    mysql的to_days函数
    Samba简介
  • 原文地址:https://www.cnblogs.com/xiaojian98/p/12992612.html
Copyright © 2020-2023  润新知