我的c学习之路四------关键字


下面就是c的关键字
标准c一共有32个关键字,下面一个一个来学
auto 声明变量时用的,对应着static,如果不写。默认为auto
我的理解是这样的:在函数中声明一个变量,如果使用auto来声明,那么给这个变量分配的内存地址是重新分配的。这样的话,每次调用这个函数的时候,如果不初始化这个变量,那么变量的内容是不确定的。而用static来声明,那么每次调用这个函数时,对static声明的变量总是分配一个相同的地址,这样,用static声明的变量内容就是上次调用过后的内容。
例如
#include <stdio.h>
#include <stdlib.h>
int sub1()
{
        int a=0;
        int static b=0;
        a=a+1;
        b=b+1;
        printf("a=%d/n",a);
        printf("b=%d/n",b);
}
int main()
{
    printf("first/n");
    sub1();
    printf("second/n");
    sub1();
    return 0;
}
运行的结果为
first
a=1
b=1
second
a=1
b=2

可见,b之初始化了一次。

break 跳出语句,用于跳出循环,条件判断等。

case 一般和switch用在一起,组成一个多条件判断语句。同时switch语句中还有另外一个关键字default,用于表明其他情况下所执行的语句。
用法如下:
switch  a
{   
    case 1:
    //当a=1时执行的代码
    break;

    case 2:
    //当a=2时执行的代码
    break;

    case 3:
    case 4:
    //当a=3或者a=4时执行的代码
    break;

    default:
    //当a为其他情况时执行的代码
    break;

需要注意的是,case后面之能用常量

char 变量类型,可存储一个字节,一般情况下,给char类型赋值时用单引号。例如 char a=‘a’

const 静态的意思。一般变量加上了const前缀就说明变量在运行阶段不能改变其自身的值。

continue 一般用在循环中,表示忽略过这次循环,开始下一次循环

do 循环语句,和while一起构成,举例:
#include <stdio.h>
#include <stdlib.h>

int main()
{
int a=0,b=0;
do
{
    a=a+1;
    if(a==5) continue;
    b=b+1;
}
while( a<10);
printf("a=%d/n",a);
printf("b=%d/n",b);
    return 0;
}
运行的结果是:
a=10
b=9
注意while后面的条件需要加上括号。

double 一般占用8个字节,用来保存含有小数的数字,是float类型保存的两倍。float也是保存含有小数的数字。不过一般为4个字节,需要注意的是:long double不一定占用16个字节。不同的编译器有不同的规则。

else 和if关键字一起组成判断语句,格式如下
if(判断条件)
{条件成立后执行的语句}
else
{条件不成立执行的语句}
判断条件一般为二进制对比。就是0就是不成立,非0就是成立。

enum 用在枚举中

extern 存储类区分符,表明后面声明的对象可以被其他程序所调用,一般用在dll中

for 一种循环语句,格式如下
for(初始化表达式,比较表达式,增量控制)执行语句
例如
int a
for(a=1,a<0,a=a+1)
printf “%d/n”,a

需要注意的是,这三个表达式没有特别的关系,只要比较表达式为true,那么就执行语句。

goto 跳转语句

int 存储类型,用来保存整数。4字节

long 存储类型,用来保存整数。存储的范围比int大

register 变量修饰符,意思是将变量优先存放在寄存器中,这样就能加快变量的读取时间。据说在c++中还有其他用途。
注意:寄存器变量的地址是不可访问的

return 返回函数

short 变量修饰符,表明比标准的类型要小的存储类型,例如short int 一般占用2字节


signed 变量修饰符,表明变量保存的数字是有符号的

sizeof 变量所占字节的大小

struct 用于声明结构体

typedef 为一个类型取一个新名字

union 用于声明结构体,union和struct的不同是:struct所声明的结构所占用的内存是结构体中所有成员的和,而union所声明的机构所占用的内存是结构体中所有成员当中最大的成员所占用的内存大小。
我的理解,union更应该说是声明了一种通用变量。通过不同的名称来将这个通用变量改变成不同的类型
例如:
union mytype
{
    int myint;
    double mydouble;
}
这样我调用mytype. myint时就是调用的int类型。而调用mytype.mydouble时调用的就是double类型。这个东西看起来很有前途啊。
注意:不能在定义时初始化变量。

void 表明类型为空

volatile (易变的)表示该变量不经过赋值,其值也可能被改变(例如表示时钟的变量、表示通信端口的变量等)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值