从零开始的C语言(下)

目录

1.常见关键字

1.1关键字typedef

1.2关键字static

1.2.1修饰局部变量

1.2.2修饰全局变量

1.2.3修饰函数

2. #define定义常量和宏

2.1#define定义标识符常量

2.2 #define定义宏

3.指针

3.1内存

3.2指针变量的大小

4.结构体


1.常见关键字

auto  break  case  char  const  continue  define
do  double  else  enum  extern  float  for  goto
if  int  long  register  return  short  signed  sizeof
static  struct  switch  typedef  union  unsigned
void  volatile  while

1.1关键字typedef

typedef 顾名思义是类型定义,这里应该理解为类型重命名

寄存器关键字:register

int num=10;//占4个字节
register int num2=20;//建议将20放在寄存器中

1.2关键字static

static关键字是用来修饰变量和函数的

1.2.1修饰局部变量

static修饰局部变量,局部变量就变成静态的局部变量,出局部范围不会被销毁,下一次进入函数时依然存在.其实是因为static修饰的局部变量是存储在静态区的,相当于生命周期变长了

static修饰局部变量时,实际改变的是变量的存储位置,本来一个局部变量是存放在栈区的,被static修饰后放在了静态区,出作用域后依然存在,生命周期没有结束.

1.2.2修饰全局变量

//extern是用来修饰外部符号的

一个全局变量本来是具有外部链接属性的,但是被static修饰后,外部链接属性就变成了内部链接属性,只能在自己所在的源文件内部使用,不能在其他文件内部使用

使用上感觉作用域变小了

1.2.3修饰函数

一个函数本来是具有外部链接属性的,但是被static修饰后,外部链接属性就变成了内部链接属性,只能在自己所在的源文件内部使用,不能在其他文件内部使用,使用上感觉作用域变小了

2. #define定义常量和宏

2.1#define定义标识符常量

#define MAX 1000

2.2 #define定义宏

#define MAX(x,y) ((x)>(y)?(x):(y))

3.指针

3.1内存

一个内存单元是一个字节

内存单元是有编号的,编号就是内存单元的地址,我们把地址也叫指针

//取出变量地址
#include <stdio.h>
int main()
{
    int num = 10;
    &num;//取出num的地址
         //注:这里num的4个字节,每个字节都有地址,取出的是第一个字节的地址(较小的地址)
    printf("%p\n", &num);//打印地址,%p是以地址的形式打印
    return 0;
}

int a=10;
int *pa=&a;//pa是用来存放地址的,所以我们把pa叫指针变量
//这个*告诉我们,pa是一个指针变量
//int告诉我们,pa指向的对象是int类型
char ch='w;
char *pc=&ch;
*pc='q'; //*解引用操作符,它的意思就是通过pc中存放的地址,找到pc指向的内容
printf("%c\n",ch);//q

指针变量是专门用来存放地址的

3.2指针变量的大小

指针变量的大小取决于地址的大小

指针大小在32位平台是4个字节,在64位平台是8个字节

4.结构体

结构体使得C语言有能力描述复杂类型

//类型
struct Stu
{
    char name[20];
    int age;
};
int main()
{
    //结构体变量
    struct Stu S1={xx,18};
    struct Stu S2={xxx,20};
    printf("%s %d\n",S1.name,S1.age);
    printf("%s %d\n",S2.name,S2.age);
    return 0;
}

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值