c语言的基本语法

知识点1【数据类型】

数据的不同类型 目的 合理的利用空间计算机存储的是二进制。一位二进制 只能存放0或1
1b1字节 == 8b(八位二进制) 0000 0000 ~ 1111 11111B == 8b
1KB == 1024B 10月24号程序员节日
1MB == 1024 KB1GB == 1024 MB1TB == 1024 GB1PB == 1024 TB1EB == 1024 PB
-------------------------在32位平台---------------------------------
char 字符类型 占1字节的空间(8位二进制位)
short 短整型 占2字节的空间(16位二进制位)
int 整型 占4字节的空间(32位二进制位)
long 长整型 占4字节的空间(32位二进制位)
float 单精度浮点型 占4字节的空间(32位二进制位)
double 双精度浮点型 占8字节的空间(64位二进制位)案例:验证数据类型的长度
-------------------------在64位平台---------------------------------
char 字符类型 占1字节的空间(8位二进制位)
short 短整型 占2字节的空间(16位二进制位)
int 整型 占4字节的空间(32位二进制位)
long 长整型 占8字节的空间(64位二进制位)
float 单精度浮点型 占4字节的空间(32位二进制位)
double 双精度浮点型 占8字节的空间(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;
}

运行结果:
在这里插入图片描述

知识点2【unsigned 和 signed】

(重要)1、无符号数 unsigned数据没有符号位,自身的所有二进制位 都是数据位比如:unsigned char 0000 0000 ~ 1111 1111
2、有符号数 signed 默认一般省略二进制最高位 为符号位,其他位 为数据位。signed char xxxx xxxx (x:0~1)最高位为1表示负数 最高位为0 表示正数负数:1xxx xxxx 正数:0xxx xxxxsigned 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中的成员

在这里插入图片描述
2、union 共用体 中的成员 共享同一份空间
在这里插入图片描述

知识点4【enum 和 void】

(了解)1、enum 枚举 将变量要赋值的值 一一列举出来
enum BOOL{false,true};
enum BOOL bool = false;
2、void 无类型 (重要)
不能用void 定义变量
int num;//√
void num;//×
系统不能确定给num开辟多大的空间

知识点5【其他关键字】

(了解)auto自动类型,register 寄存器变量,static静态变量,const只读sizeof 测类型大小 typedef为已有的类型 重新取个别名volatile 防止编译器优化
1、register 寄存器变量
在这里插入图片描述
总结: 1、如果没显示标明 register ,就类似int num,如果num被高频繁使用 系统也会放入寄存器中 2、register int num;//显示的将num放入寄存器中 3、寄存器的变量 不能取地址 &num

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

2、typedef 为已有的类型取个别名

//给已有的int类型取个别名 INT32
typedef int INT32;
void test02()
{
int num1 = 10;
INT32 num2 = 20;
printf(“num1 = %d\n”,num1);
printf(“num2 = %d\n”,num2);
}
int main(int argc,char *argv[])
{
test02();
return 0;
}

结果:

在这里插入图片描述
3、volatile 防止编译器优化 强制访问内存操作
在这里插入图片描述

知识点6【常量与变量】

(重要)1、常量 值不能被修改
(千万不能反过来说:值不能修改就是常量)10 20 4.14 ‘a’ “abcd”
2、变量 系统根据变量的类型 开辟对应的空间 其值可以被修改
变量名 代表的是 空间的内容
(重要)操作变量 就是 对空间内容的操作
变量名的命名规则:由数值、字母、下划线组成但不能以数字开头。A: num_1 B: _num1 C: 1_num D: num
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值