C语言数据类型及语句

本文详细介绍了C语言中的关键字,包括数据类型、存储相关、控制语句和其他关键字,如char、int、float、double、register、static、const等。此外,还讲解了数据类型的基本类型、构造类型和类型转换,以及运算符的分类和使用,如算术、关系、逻辑和位运算符。最后,文章提到了选择和循环控制语句,如if、else、for和while。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1关键字

1.1.1数据类型相关的关键字

      用于定义变量或者类型
      类型  变量名;
      char、short、int、long、 float、double、struct、union、enum、signed、unsigned、void
1、char  字符型,用char定义的变量是字符型变量,占1个字节
      char  ch='a';=为赋值号

char ch1 = '1'; 正确
char ch2 = '1234' ;错误的

2、short 短整型,使用short定义的变量是短整型变量,占2个字节

 short int a=11;    -32768----32767

3、int 整型,用int定义的变量是整型变量,在32位系统下占4个字节,在16平台下占2个字节

   int a=44;    -20亿----20亿

4、long长整型,用long定义的变量是长整型的,在32位系统下占4个字节

long int a=66;

5、foat单浮点型(实数),用float定义的变量是单浮点型的实数,占4个字节

float b=3.8f;

6、double双浮点型(实数),用double定义的变量是双浮点型的广数,8个字节

double b=3.8;

7、struct,这个关键字是与结构体类型相关的关键字,可以用它来定义结构体类型
8、union,这个关键字是与共用体(联合体)相关的关键字
9、enum,与枚举类型相关的关健字
10、signed,有符号(正负)的意思
        在定义char、整型(short、int、long)数据的时候用signed修饰,代表咱们定义的数据是有符号的,可以保存正数,也可以保存负数
       

 例:signed int a=10;
     signed int b=-6;

        注意:默认情况下signed可以省略即inta=-10://默认n就有符号类型的数据
11、unsigned,无符号的意思
        在定义char、整型(short、int、long)数据的时候用unsigned修饰,代表咱们定义的数据是无符号类型的数据只能保存正数和0。

unsigned int a=101;
unsigned int a=-101; ∥错误

扩展:内存存储
        char ch=‘a';//占1字节,存储的是97
            0110  0001
        字节:内存的基本单位,8位为1个字节
        计算机存储时,只能存储1和0的二进制组合,1和0都分别占1位
        字符型数据在内存中存储的不是字符本身,而是存储其Asci码
        整型变量存储的是其值的二进制       unsigned int a=97;
扩展:正数和负数在内存中到底是怎么存的
        原码、反码、补码
        规定:
        正数的原码反码和补码相同  5
        00000101
        负数:-5
        00000101
        最高位为符号位最高位为1代表是个负数

12、void,空类型的关键字
        char、int、foat都可以定义变量
        void不能定义变量,没有void类型的变量
        void是用来修饰函数的参数或者返回值,代表函数没有参数或没有返回值
        例:
        void fun(void)
        {

        }
代表fun函数没有返回值,fun函数没有参数

例2:
#include<stdio.h>
int main()
{
char a='a';
short int b=10;
int c;
long int d;
float e;
double f;
printf("%d\n",sizeof(a));
printf("%d\n",sizeof(b));
printf("%d\n",sizeof(c));
printf("%d\n",sizeof(d));
printf("%d\n",sizeof(e));
printf("%d\n",sizeof(f));
return 0;
}

1.1.2存储相关关键字

        register、static、const、auto、extem
1、reglster

        reglster是寄存器的意思,用register修饰的变量是寄存器变量,
        即:在编译的时候告诉编译器这个变量是寄存器变量,尽量将其存储空间分配在寄存器中。
注意:
(1):定义的变量不一定真的存放在寄存器中。
(2):cpu取数据的时候去寄存器中拿数据比去内存中拿数据要快
(3):因为寄存器比较宝贵,所以不能定义寄存器数组
(4):register只能修饰字符型及整型,不能修饰浮点型

register char ch;
register short int b;
register int c;
register float d;  //错误的

(5):因为register修饰的变量可能存放在寄存器中不存放在内存中,所以不能对寄存器变量取地址。因为只有存放在内存中的数据才有地址。

register int a;
int*p;
p=&a;  ∥错误的,a可能没有地址

2、static

static是静态的意思
static可以修饰全局变量、局部变量、函数

3、const
const是常量的意思
用const修饰的变量是只读的,不能修改它的值

const int a=101;  //在定义a的时候用const修饰,并赋初值为101

从此以后,就不能再给a赋值了
a=111;   //错误的

4、auto

int a;和int a是等价的,auto关键字现在基本不用

5、extern

是外部的意思,一般用于函数和全局变量的声明

1.1.3控制语句相关的关键字

if、else、break、contiue、for、while、do、switch、case、goto、default

1.1.4其他关键字

sizeof、typedef、volatile
1、slzeof
        使用来测变

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值