C语言(基础学习)

本文详细介绍了C语言中的数据类型(如char,int,float等)、计算机中常用的单位转换、打印符号的使用、常量与变量的区别、字符串处理、转义字符以及关键编程概念如函数、控制结构等。
摘要由CSDN通过智能技术生成

C语言

一、数据类型

char 字符数据类型 1个字节

short 短整型 2个字节

int 整型 4个字节

long 长整型 4个字节

long long 更长的整型 8个字节

float 单精度浮点数 4个字节

double 双精度浮点数 8个字节

(在C语言中,sizeof(long)>=sizeof(int))

二、计算机中的单位

1byte=8bit byte(字节)

1kb=1024byte

1mb=1024kb

三、打印符号

%d ----整型

%f—float

%lf—double

%c----字符

%s----字符串(注意:这个字符串是不能有“ ”(空格)的)

%e(%E)----浮点数科学计数法(e-(E-)计数法)

%g(%G)----浮点数不显示无意义的0

%i-----有符号的十进制整数

%u----无符号的十进制整数

%o----八进制整数

%x(%X)----带符号十进制整数

%p----指针

%s----字符串

%%—“%”

2.标志
左对齐:“-” “%-20s”
右对齐:“+” “%+20s”
空格:若符号为正,则显示空格,负则显示"-" "% "
#:对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x;
对e,g,f 类当结果有小数时才给出小数点。

3.格式字符串(格式)
[标志][输出最少宽度][.精度][长度]类型
“%-md” :左对齐,若m比实际少时,按实际输出。
“%m.ns”:输出m位,取字符串(左起)n位,左补空格,当n>m or m省略时m=n
“%7.2s” 输入CHINA
  输出" CH"
“%m.nf”:输出浮点数,m为宽度,n为小数点右边数位
“%” 输入3852.99
输出3853.0

四、常量与变量

在{}外边的是全局变量,可以决定全部;

在{}里边的是局部变量只决定{}范围内的数据

当全局变量与局部变量的名称冲突时局部变量会覆盖全局变量。

全局变量 在main函数之前声明可以使用,在外部文件的需要借用extern借用外部变量

变量的生命周期:指的是变量的创建与销毁之间的时间段。

常量:

1、字面常量 如数字等等

2、const修饰的常量 const修饰的变量称为常变量

3、#define 定义的标识符常量 define在定义值时无等号 可以在{}外定义

4、枚举常量

enum xxx

{

​ a,b,c,d

};

这样我们可以对a赋初值(默认是0)这样bcd依次为1,2,3;

五、字符串

定义:用双引号括起来的一串字符 “sdadadsda”

字符串在结尾隐藏\0,\0是字符串结束的标志

char arr1[]=“abc”;

char arr2[]={‘a’,‘b’,‘c’}

arr1后边有\0所以有四个元素,arr2没有\0无法停止,有随机个元素

arr1是字符串类型,arr2是字符类型

求字符串长度用strlen,计算时\0不包含在字符串长度内

六、转义字符

? 在书写连续多个问号时,防止他们被解析成三字母词

'用于表示字符常量‘

\“ 用于表示一个字符串内部的双引号

\用于表示一个反斜杠,防止他被解释为一个转义序列符。

\a警告字符,蜂鸣(产生声音或视觉信号)

\b退格符(在使用时,如果后边还有要输出的内容就会覆盖掉\b前一位,否则就不会)

\f进纸符(将光标移到下一页)

\n换行

\r回车(与\n不同,\r将光标移动到原来这一行的开头)

\t水平制表符(相当于Tab)

\v垂直制表符(将\v之后的内容另起一行输出,且这一行的内容的开头为\v之前的最后一个位置的后一位)

\ddd表示1~3个八进制的数字 如\130X

\xdd dd表示2个十六进制的数字 如\x30 0

数字符串长度时\t算一个 \111 \x11这样的进制数注意 八进制中不出现8

注释 // 解释复杂代码

//

/*

’‘’‘’‘’‘

*/

七、关键字

  • void:声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果

  • char:字符型类型数据,属于整型数据的一种

  • int:整型数据,通常为编译器指定的机器字长

  • float:单精度浮点型数据,属于浮点数据的一种

  • double:双精度浮点型数据,属于浮点数据的一种

  • short:修饰int,短整型数据,可省略被修饰的int。

  • long:修饰int,长整形数据,可省略被修饰的int。

  • signed:修饰整型数据,有符号数据类型

  • unsigned:修饰整型数据,无符号数据类型

  • struct:结构体声明

  • union:共用体声明

  • enum:枚举声明

  • typedef:声明类型别名

  • sizeof:得到特定类型或特定类型变量的大小

  • auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配

auto的原理就是根据后面的值,来自己推测前面的类型是什么

auto x1 = 5, x2 = 5.0, x3='r';
  • static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部

静态局部变量使用static修饰符定义,即使在声明时未赋初值,编译器也会把它初始化为0。且静态局部变量存储于进程的全局数据区,即使函数返回,它的值也会保持不变。

全局变量定义在函数体外部,在全局数据区分配存储空间,且编译器会自动对其初始化。

普通全局变量对整个工程可见,其他文件可以使用extern外部声明后直接使用。也就是说其他文件不能再定义一个与其相同名字的变量了(否则编译器会认为它们是同一个变量)。

静态全局变量仅对当前文件可见,其他文件不可访问,其他文件可以定义与其同名的变量,两者互不影响。函数

函数的使用方式与全局变量类似,在函数的返回类型前加上static,就是静态函数。其特性如下:

  • 静态函数只能在声明它的文件中可见,其他文件不能引用该函数

  • 不同的文件可以使用相同名字的静态函数,互不影响

  • register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数

  • extern:指定对应变量为外部变量,即在另外的目标文件中定义,可以认为是约定由另外文件声明的对象的一个“引用“

  • const:与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变)

  • volatile:与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值

  • return:用在函数体中,返回特定值(或者是void值,即不返回值)

  • continue:结束当前循环,开始下一轮循环

  • break:跳出当前循环或switch结构

  • goto:无条件跳转语句

  • if:条件语句

  • else:条件语句否定分支(与if连用)

  • switch:开关语句(多重分支语句)

  • case:开关语句中的分支标记

  • default:开关语句中的“其他”分治,可选。

  • for:for循环结构,for(1;2;3)4;的执行顺序为1->2->4->3->2…循环,其中2为循环条件

  • do:do循环结构,do 1 while(2);的执行顺序是1->2->1…循环,2为循环条件

  • while:while循环结构,while(1) 2;的执行顺序是1->2->1…循环,1为循环条件

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值