找回密码
 register

QQ登录

只需一步,快速开始

[*编程自学*] 第三课:C语言关键字

[复制链接]

[*编程自学*] 第三课:C语言关键字

[复制链接]
Waylee

主题

0

回帖

7459

积分

仙帝

积分
7459
Waylee 2024-7-30 17:22 | 显示全部楼层 |阅读模式

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×
C的关键字共有32个
1.数据类型关键字(12个)
char,short,int,long,float,double
unsigned,signed ,struct,union,enum,void
【知识点1·数据类型】
数据的不同类型 目的 合理的利用空间
计算机储存的是二进制。一位二进制 只能存放01 1b
1字节 == 8b(八位二进制) 0000 0000 ~ 1111 1111
1B == 8b
1KB == 1024B 10月24日程序员节日
1MB == 1024KB
1GB == 1024MB
1TB == 1024GB
1PB == 1024TB
1EB == 1024PB
------------------------在32位平台------------------------------
char 字符类型 占1字节的空间(8位二进制位)
short 短整型 占2字节的空间(16位二进制位)
int 整型 占4字节的空间(32位二进制位)
long 长整型 占4字节的空间(32位二进制位)
long long 占8字节的空间 (64位二进制位)
flaot 单精度浮点型 占4字节的空间(32位二进制位)
double 双精度浮点型 占8字节的空间(64位二进制位)
------------------------在32位平台------------------------------

------------------------在64位平台------------------------------
long 长整型 占8字节的空间(64位二进制位)
------------------------在64位平台------------------------------

案例:验证数据类型的长度
sizeof测量类型的长度
#include <stdio.h>
int main(int argc,char *argv[])
{
        printf("sizeof(char) = %d\n",sizeof(char));
        printf("sizeof(short) = %d\n",sizeof(short));
        printf("sizeof(int) = %d\n",sizeof(int));
        printf("sizeof(long) = %d\n",sizeof(long));
        printf("sizeof(float) = %d\n",sizeof(float));
        printf("sizeof(double) = %d\n",sizeof(double));
        return 0;
}

运行结果:
sizeof(char) = 1
sizeof(short) = 2
sizeof(int) = 4
sizeof(long) = 4
sizeof(float) = 4
sizeof(double) = 8
Press any key to continue

【知识点2·unsigned 和 signed】(重要)
1.无符号数 unsigned
数据没有符号位,自身所有二进制位 都是数据位
比如:snsigned char     0000 0000 ~ 1111 1111
2.有符号数 signed 默认一般省略
二进制最高位符号位其他位数据位
signed char    xxxx xxxx(x:0~1)
最高位为1表示负数,最高位为0表示正数
负数:1xxx xxxx    正数:0xxx xxxx
signed char 他的表示范围:1111 1111 ~ 1000 0000 ~ 0000 0000 ~ 0111 1111
案例:一个字节:-10   == 1000 1010

代码案例:
#include<stdio.h>
int main(int argc,char *argv[])
{
        //定义一个有符号的int 
        signed int num1 = 10;//num1有+符号的int
        
        //signed 默认是省略(省略)
        int num2 = 10;//num2也是有符号int

        //unsigned 表示无符号数 不能省略
        unsigned int num3 = 10;

        return 0;        
}

【知识点3· 结构体struct和共用体union】
1.struct 结构体 中的成员 拥有独立的空间
struct data1{
     char a;
     short b;
     int c;
}

a、b、c就是结构体data1中的成员
QQ截图20240730202549.jpg
2.union共有体 中的成员 共享同一份空间、
union data2{
char a;
short b;
int c;
}

22.jpg
【知识点4· enum和void】初步了解)
1.enum枚举,将变量要赋值的值一一列举出来
enum BOOL{flase,true};
enum BOOL bool = false;

2.viod 无类型(重要)
不能用viod定义变量
int num;//√
void num;//×,系统不能确定给num开辟多大的空间


2.控制语句关键字(12个)
if,else,switch,case,default
for,do,while,break,continue,goto,return

3.储存类关键词(5个)(初步了解)
auto,extern,register,static,const
auto 自动类型

register 寄存器变量
22.jpg
总结:如果没有明显标明register,就类似int num,如果num被高频使用,系统也会放入寄存器中
register int num;//显示将num放入寄存器中,只能是尽量放入寄存器,存在寄存器不足的情况

不能对寄存器变量取地址
案例:
#include<stdio.h>
int main(int argc,char *argv[])
{
        register int num = 10;
        //%p输出地址
        printf("%p\n",&num);//错误,不能对寄存器变量取地址
        return 0;
}

报错提示:main.c(7) : error C2103: '&' on register variable

static 静态变量
const 只读

4.其他关键词(3个)初步了解)
sizeof,typedef,volatile
sizeof 测类型大小

typedef 为已有的类型 重新取一个别名:
案例:
#include<stdio.h>
typedef int INT32;
int main(int argc,char *argv[])
{
        int num1 = 10;
        INT32 num2 = 20;
        printf("num1 = %d\n",num1);
        printf("num2 = %d\n",num2);
        return 0;
}

结果:
num1 = 10
num2 = 20
Press any key to continue

volatile 防止编译器优化,强制访问内存操作:
QQ图片20240730231330.png



雪舞知识库 | 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 |网站地图|天天打卡

GMT+8, 2024-11-22 01:31 , Processed in 0.047523 second(s), 10 queries , Redis On.

Powered by XueWu Licensed

Copyright © Tencent Cloud.

快速回复 返回顶部 返回列表