在 c 语言中11 个关键字,C语言学习(11)

本文详细介绍了C语言中的关键字static、extern、const和typedef的用法。static用于限制变量或函数的作用域,extern用于声明外部变量或函数,const用于创建常量或指针只读属性,typedef则用于为数据类型创建别名,提高代码可读性和移植性。此外,还讲解了动态内存分配函数malloc、calloc的使用。通过对这些概念的理解,读者能更好地掌握C语言编程技巧。
摘要由CSDN通过智能技术生成

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

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\n",b);

12

13 //传统定义char *指针 char *p=buf;

14 char buf[10]="hello";

15 pp p=buf; //char *p=buf

16 printf("p is:%s\n",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] --》第二个参数。

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

标签:11,char,typedef,10,int,C语言,学习,修饰,buf

来源: https://www.cnblogs.com/xiaojian98/p/12992612.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值