C语言-学习之路-01

目录

关键字

C的关键字共有32个。

  1. 数据类型关键字(12个)
    char,short,int,long,float,double,unsigned,signed,struct,union,enum,void
  2. 控制语句关键字(12个)
    if,else,switch,case,default,for,do,while,break,continue,goto,return
  3. 存储类关键字(5个)
    auto,extern,register,static,const
  4. 其他关键字(3个)
    sizof,typeof,volatile

数据类型

数据类型的作用:编译器预算对象(变量)分配的内存空间大小。
数据类型:基本类型、构造类型、指针类型
基本类型:整型(int、short、long)、字符型(char)、实型(浮点型:单精度实型float、双精度实型double)。
构造类型:数组类型、结构类型(struct)、联合类型(union)、枚举类型(enum)。
指针类型:char * 、int * 等。

常量

整型常量:100、200、-100、0。
实型常量:3.14、0.125 、-3.123。
字符型常量:‘a’, ‘b’, ‘l’, ‘\n’ 。
字符串常量:“a”,“ab”,“123456”。

变量

变量:在程序运行过程中,其值可以改变;变量在使用前必须先定义,定义变量前必须有相应的数据类型。
标识符命名规则:
1. 标识符不能是关键字
2. 标识符只能由字母、数字、下划线组成
3. 第一个字符必须为字母或下划线
4. 标识符中字母区分daxiaoxie

变量特点:变量在编译时为其分配相应的内存空间、可以通过其名字和地址访问相应内存。

声明和定义

声明:声明变量不需要建立存储空间。如:extern int a;
定义:定义变量需要建立存储空间。如:int a;

换句话来说,定义是声明的一种特例,但并不是所有声明都是定义。
int b; 它既是声明,也是定义。
extern int a; 只是声明,不是定义。

#include <stdio.h>
#include <string.h>
#define WEEK 7  //一周7天   声明了一个 WEEK变量,名字:WEEK ,值:7。一旦初始化,不可以修改。

int main(void)
{
    
    
	int a;  //定义一个变量,类型:int,名字:a。
	const int b = 10; //定义了一个const 常量,名字:b,值:10。常量的值不能改变。
	a = WEEK; //可以将WEEK的值赋值给a。
	a = 111;
	printf("a的值:%d\n",a);

	return 0;
}

进制

常见的进制有二进制、八进制、十进制、十六进制。(相互可以转换!后续再详细介绍)
**当前的计算机系统使用的基本上是二进制系统,数据再计算机中主要是以补码的形式存储的。(**原码、反码、补码后续再详细介绍。)
补码特点:

1. 对于正数、原码、反码、补码相同;
2. 对于负数,其 补码为它的反码加1;
3. 补码符号位不动,其他位求反,再加1,得到原码。

在计算机系统中,数值同一用补码来存储,主要原因:

1. 统一了0的编码;
2. 将符号位和其他位统一处理;
3. 将减法运算转变为加法运算;
4. 两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。

sizeof关键字

  1. sizeof不是函数,所以不需要包含任何头文件,它的功能是计算一个数据类型的大小,单位为字节。
  2. sizeof 的返回值为size_t;
  3. size_t类型在32位操作系统下是unsigned int ,是一个无符号的整数。
#include <stdio.h>
#include <string.h>

int main() {
    
    

    int a = 10;
    printf("a的字节长度:%d\n",sizeof(a));

    size_t c = sizeof(a);
    printf("c:%u\n",c);
    
    return 0;
}

整型:int

打印格式 含义
%d 输出一个有符号的10进制int类型
%o 输出8进制的int类型
%x 输出16进制的int类型,字母以小写输出
%X 输出16进制的int类型,字母以大写输出
%u 输出一个10进制的无符号数
%p 后续使用时,再介绍。

short、int、long、long long

数据类型 占用空间
short(短整型) 2字节
int (整型) 4字节
long(长整型) Windows为4字节,Linux为4字节(32位),8字节(64位)
long long (长长整型) 8字节

当一个小的数据类型赋值给一个大的数据类型,不会出错,因为编译器会自动转化。但当一个大的类型赋值给一个小的数据类型,那么就可能丢失高位。

字符型:char

字符型变量用于存储一个单一字符,在C语言中用char表示,其中每个字符变量都会占用一个字节。在给字符型变量赋值时,需要用一对英文半角格式的单引号(‘ ’)把字符括起来。
字符变量实际上并不是把该字符本身放到变量的内存单元中去,而是将该字符对应的ASCII编码放到变量的存储单元中。char本质就是一个1字节大小的整型。
在这里插入图片描述
字符变量的输入:

#include <stdio.h>
#include <string.h>

int main(void)
{
    
    
	char ch;
	printf("请输入ch的值:");

	scanf_s("%c",&ch);   //%c后面不要加 \n

	printf("ch:%c\n",ch);

	return 0;
}

ASCII对照表

在这里插入图片描述
在这里插入图片描述

转义字符

转义字符 含义 ASCII码值(十进制)
\a 警报 007
\b 退格(BS),将当前位置移到前一列 008
\f 换页(FF),将当前位置移到下页开头 012
\n 换行(LF),将当前位置移到下一行开头 010
\r 回车(CR),将当前位置移到本行开头 013
\t 水平制表(HT),(跳到下一个TAB位置) 009
\v 垂直制表(VT) 011
\ \ 代表一个反斜线字符 ”\“ 092
\ ’ 代表一个单引号(撇号)字符 039
\ " 代表一个双引号字符 034
\ ? 代表一个问号 063
\0 数字 0 000
\ ddd 8进制转义字符,d范围0~7 3位八进制
\ xhh 16进制转义字符,h范围0~9,a-f, A-F 3位16进制

数值溢出

当超过一个数据类型能够保存最大的范围时,数值会溢出。

实型(浮点型):float、double

浮点型变量分为:单精度浮点数(float,4字节,7位有效数字)、双精度浮点数(double,8字节,15-16位有效数字)。

类型限定符

限定符 含义
extern 声明一个变量,extern声明的变量没有建立存储空间
const 定义一个常量,常量的值不能修改
volatile 防止编译器优化代码
register 定义寄存器变量,提高效率。register是建议型的指令,而不是命令型的指令,如果CPU有空闲寄存器,那么register就会生效,如果没有空闲寄存器,那么register无效。

字符串格式化输出和输入

字符串是内存中一段连续的char空间,以’\0’(数字0)结尾。
字符串常量是由双引号括起来的字符序列,如:“china”、“C program”、"$12.5"等都是合法的字符串常量。
printf函数和putchar函数:
在这里插入图片描述
在这里插入图片描述
scanf函数和getchar函数:

  • getchar是从标准输入设备读取一个char;
  • scanf通过%转义的方式可以得到用户通过标准输入设备输入的数据。

猜你喜欢

转载自blog.csdn.net/weixin_50918736/article/details/130424018