C语言初识

  • C语言运行过程

C语言是经过编译和链接生成可执行文件,进行运行的。
自己编写代码保存的文件为源文件.c
经过编译后.obj文件
后经过链接后生成.exe可执行文件
最后运行可执行文件即可
尤其要说的是现在编译和链接是通过编译器(IDE)工具执行的,可以转化为二进制

注:一个项目中有多个.c文件,但只能有一个main函数。main函数是程序的入口,有且仅有一个,程序都是从main函数的第一行开始的。

  • 库函数

C语言库函数是把自定义函数放到库里,是别人把一些常用到的函数编完放到一个文件里,供程序员使用
比如:printf和scanf就是库函数

  • 关键字

保留给C语言使用,不能自己命名变量的。在C语言中有32个关键字

auto double int struct break else long switch

case enum register typedef char extern return union

const float short unsigned continue for signed void

default goto sizeof volatile do if while static
  • 基本数据类型

C语言本身具有的类型,也叫内置类型

字符型 char1个字节
整型   short 2字节  int     4字节  long 4字节  long long 8字节
浮点型 float 4字节  double  8字节
布尔类型 _Bool
  • 有符号和无符号

signed:表示一个类型带有正负号,包含负值
unsigned:表示该类型不带有正负号,只能表示零和正整数。若想Int类型不带负号,表示非负整数,必须用unsigned声明变量

这两个类型可以用来修饰字符型和整型

默认情况下

int ==  [signed] int			//signed可以省略
unsigned [int] a == unsigned a; //int可以省略

unsigned 的好处是同样长度的内存能够表示的最大整数值,增加了一倍

signed short int  //范围是-32768-32767
unsigned short int //范围是0-65535

如果想看其他数据类型的范围,可以去头文件limits.h,float.h等查看

//这是limits.h头文件包括的一部分范围
#define CHAR_BIT      8
#define SCHAR_MIN   (-128)
#define SCHAR_MAX     127
#define UCHAR_MAX     0xff

#define MB_LEN_MAX    5
#define SHRT_MIN    (-32768)
#define SHRT_MAX      32767
#define USHRT_MAX     0xffff
  • printf常见的占位符

%d  十进制的整数
%s   表示字符串
%c   表示字符         char
%f   表示单精度浮点数 float
%lf  表示双精度浮点数 double
%zd  打印size_t的类型使用
  • 转义字符

转义字符通俗来讲就是转变了意思的字符

\n 换行
\t 水平制表符
\a 使终端发出警告
\b 删除一格
\ddd ddd表示1-3个八进制数字	   //字符的八进制表示
\xdd  dd表示2个十六进制的数字  //字符的十六进制表示
  • sizeof操作符

sizeof是一个操作符,计算的是变量所占内存大小,也就是计算类型创建的变量所占内存的大小,单位是字节。
这里就有一个专门为sizeof设置的一个类型,本质是无符号整数,也就是sizeof_t

  • 字符数组与字符串

字符串的末尾隐藏一个\0
\0是字符串的结束标志

char arr[]="abc" //有\0 打印结果abc 内存中相当于有'a' 'b' 'c' '\0'
char arr1[]={'a','b','c'} //没有\0  打印结果abc烫烫烫bc
原因:
因为\0表示结束符,字符串最后都有个\0,当打印arr时候,内存检测到\0就停止打印
而arr1没有\0,因此内存就会往后一直打印,直到找到\0才停止,所以会产生乱码

注:计算字符串中字符的个数,使用strlen()函数,但是不计算\0。sizeof返回的是字节数

  • 全局变量和局部变量

全局变量:int main前面定义的,整个工程中想使用,都是有办法使用的
局部变量:大括号内部定义的,只能在局部范围内使用

当局部变量和全局变量的变量名同名时,局部变量优先

  • 自增和自减

前置++:先++,后使用

int a=5;
int b=++a;//b==6 a==6 相当于 a=a+1;b=a;

后置++:先使用,再++

int a=5;
int b=a++;//b==5 a==6 相当于 b=a;a=a+1;
  • 逗号表达式

最终的结果是最右边的结果

a=(c++,b++);//最终的结果是最右边的结果 a=b++;

a=c++,b++;//相当于 a=c++;a=b++;
  • 强制类型转换

(类型)

int a=(int)3.14; //结果为33.14类型转化为int类型,这种强制类型转换只取整数部分
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰弹饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值