2、C 数据类型及语句之关键字

在这里插入图片描述

c 语言特点

新手写的第一个 c 语言程序

  • 1.#include<stdio.h> 头文件包含,一定要有
  • 2.每一个 c 语言的程序有且只有一个 main 函数,这是整个程序的开始位置
  • 3.C 语言中()[]{}"""、都必须成对出现,必须是英文符号
  • 4.C 语言中语句要以分号结束。
  • 5.//为注释
/*
1.#include<stdio.h> 头文件包含,一定要有
2.每一个 c 语言的程序有且只有一个 main 函数,这是整个程序的开始位置
3.C 语言中()、[]、{}、“”、’’、都必须成对出现,必须是英文符号
4.C 语言中语句要以分号结束。
5.//为注释
 */

#include<stdio.h>

int main(int args, char* arg[])//这个我的第一个 c 语言程序
{
    printf("hello world\n");
    //printf 是输出打印的函数
    return 0;
}

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

2.1 关键字

2.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 个字节
范围在:-32768 ---- 32767

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、float 单浮点型 (实数),用float 定义的变量是单浮点型的实数,占 4个字节

float b=3.8f;

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

 double b=3.8; 

7、struct 这个关键字是与结构体类型相关的关键字,可以用它来定义结构体类型

8、 union 这个关键字是与共用体(联合体)相关的关键字

9、 enum枚举类型相关的关键字

10、signed有符号(正负)的意思 在定义char整型shortintlong) 数据的时候用 signed 修饰,代表咱们定义的数据是有符号 的,可以保存正数,也可以保存负数 例 :

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

注意:默认情况下 signed 可以省略 即 int a=-10;//默认 a 就是有符号类型的数据

11、unsigned 无符号的意思 在定义char整型shortintlong) 数据的时候用 unsigned修饰,代表咱们定义的数据是无符 号类型的数据 只能保存正数0

unsigned int a=101;
unsigned int a=-101; //错误 有符号,不能存放负数

扩展:内存存储

char ch= ‘a’; //占 1 个字节

存储的是 97

  • 0110 0001

字节:内存的基本单位,8位为 1 个字节
计算机存储时,只能存储10 的二进制组合,10 都分别占1
字符型数据在内存中存储的不是字符本身,而是存储其 AsciI
整型变量存储的是其值的二进制

 unsigned int a = 97; 

扩展:正数和负数在内存中到底是怎么存的

原码、反码、补码
规定
正数的原码反码和补码相同 5

									0000 0101 

负数:-5

									0000 0101 

最高位为符号位 最高位为 1 代表是个负数

原码:-5

									1000 0101 

反码:除了符号位 其他位取反

									1111 1010

补码:反码 +1

									1111 1011 

注意:负数在内存中是以补码形式存放的

#include <stdio.h>

int main(int args, char* arg[])
{
    int b = -5;
    printf("%d\n",b); //打印b的数
    printf("%x\n",b); 
    return 0;

}

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

12、void 空类型的关键字 charintfloat 都可以定义变量 void不能定义变量,没有void 类型的变量void 是用来修饰函数的参数或者返回值,代表函数没有参数或没有返回值

例 1

//代表fun 函数没有返回值,
//fun 函数没有参数
void fun(void) 
{

}

例 2

#include <stdio.h>

int main(int args, char* argv[])
{
    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;
}

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

2.1.2 存储相关关键字

  • register
  • static
  • const
  • auto
  • extern

1、register是 寄存器的意思,用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 可以修饰全局变量、局部变量、函数

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

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

从此以后,就不能再给 a 赋值了

a = 111;//错误的 

const 可以修饰指针

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

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

2.1.3 控制语句相关的关键字

  • if
  • else
  • break
  • continue
  • for
  • while
  • do
  • switch
  • case
  • goto
  • default

2.1.4 其他关键字

  • sizeof
  • typedef
  • volatile

1、sizeof使用来测变量、数组的占用存储空间的大小(字节数)

例 3

 int a=10; 
 int num; 
 num=sizeof(a); 

2、typedef重命名相关的关键字

 unsigned short int a = 10; 

U16 关键字 ,作用是给一个已有的类型,重新起个类型名,并没有创造一个新的类型 以前大家看程序的时候见过类似的变量定义方法

 INT16 a; 
 U8 ch; 
 INT32 b; 

大家知道,在 c 语言中没有
INT16 U8 这些关键字 INT16 U8 是用 typedef定义出来的新的类型名,其实就是 short intunsigned char 的别名

typedef 起别名的方法:

  • 1、用想起名的类型定义一个变量
 short int a; 
  • 2、用新的类型名替代变量名
short int INT16; 
  • 3、在最前面加
typedef typedef short int INT16;
  • 4、就可以用新的类型名定义变量了
INT16 b;short int b;//是一个效果

例 4

#include <stdio.h>

//short int b;
// short int INT16;
typedef short int INT16;

int main(int args, char* argv[])
{
    short int a=101;
    INT16 c=111;
    printf("a=%d\n",a);
    printf("c=%d\n",c);
    return 0;
}

在这里插入图片描述

3、volatile易改变的意思 用volatile定义的变量,是易改变的,即告诉 cpu 每次用 volatile 变量的时候,重新去内存中取

保证用的是最新的值,而不是寄存器中的备份。
volatile 关键字现在较少适用

volatile int a=10; 

扩展知识
命名规则: 在 c 语言中给变量和函数起名的时候,由字母数字下划线构成 必须以字母或者下滑线开头

例 5

int a2;//正确的
int a_2;//正确的 
int _b;//正确的 
int 2b;// 错误的 
int $a2;//错误的

C 语言的程序结构 一个完整的 C 语言程序,是由一个、且只能有一个 main()函数(又称主函数,必须有) 和若干个其他函数结合而成(可选) main 函数是程序的入口,即 程序从 main 函数开始执行

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值