一,变量
1.定义变量的方法:类型+变量名=(赋值)
c语言语法规定,变量定义再代码块的最前面。
2.变量的分类
局部变量:在一个main函数内,定义在代码块的内部。
全局变量:定义在代码块的之外的便量。
当全局变量与局部变量的名字相同时,以局部变量优先,但是却是两个变量,而不是同时赋值。
所以最好不要相同,避免产生bug。
3.变量的作用域
局部变量的作用域是变量所在的局部变量范围,全局变量的作用域是整个工程。
4.变量的存贮位置
我们学C语言一般会关注内存:栈区,堆区,静态区。
栈区:存放局部变量,函数参数等等。
堆区:用来动态内存管理,malloc,calloc,realloc,free等等。
静态区:用来存放静态变量,全局变量 。
二,操作符
1. sizeof 是一个操作符,计算的是(类型创建)变量所占内存的大小。
size_t 是专门为sizeof 设置的一个类型,其本质是unsigned int 当其的数据在打印时,格式该用%zd。
2. 算数操作符
+ - * /:只关注商,不关注余数。当除号两端都是整数时,执行的是整数除法,如果有其中一个为小数,则执行浮点数的除法。
%(取模操作符):得到余数,但只能用于整数,不能用于浮点型。负数求模们规则是,结果的正负号是由第一个运算数的正负号决定。
这些又叫双目操作符,是指有两个操作数或是运算数。eg _+_
3.赋值操作符
注意:初始化是指创建变量时给予一个值
赋值操作符支持连续赋值,遵从从右向左依次赋值,但建议拆开。
常见
= %=
+= :a=a+3 == a +=3 -=
*= /=
>>= <<=
&= |=
^=
4.单目操作符
指只有一个操作符。
++ 前置:a++ == a=a+1 == a+=1 ,先自+,再赋值
后置:先赋值,再自+
-- + 正号 - 负号
5.强制类型转换
三,库函数
详细可以在https://cplusplus.com/reference/clibrary/
1.printf ()--------打印 (Print format格式化)
是在头文件<stdio.h>定义的函数,使用printf()时必须加上# include<stdio.h>,不会自动添加换行。允许限定占位符的最小宽度。
不够5位,拿空格填充。超过5位,则忽略5。
若想左对齐、右边拿空格填充,可将%5d写成%-5d。
当打印浮点数时,默认打印6位,其中小数点也算一位。若想限制小数点后的位数,占位符可写成 % . 数字f 。
最小宽度和小数位数这两个限运值,都可以用 * 代替。
eg printf(“ %*.*f ”,整数,整数,小数);第一个为最小宽度,第二个是小数位数。
详细看https://legacy.cplusplus.com/reference/cstdio/printf/?kw=printf
2.scanf()---------输入数据
当使用这个函数时一般会报错,解决方法:
①在当前代码的第一行写#define_CRT_SECURE_N0_WARNINGS 1 。
用ever thing https://www.voidtools.com/zh-cn/downloads/ 下载安装版64 搜索 newc++file.cpp,打开路径,右击打开方式,可用记事本将这句代码加上,若保存不了,则将这个文件拷贝在桌面上,打开后重复操作。然后新建项目时,不选默认设置,点击 显示所有模板,选C++文件建立。
②scanf_s,但这是VS提供的,不是C语言标准库中的函数,无法在其它编辑器编译。
使用时需加#include<stdio.h>,语法和printf()类似。
&:取地址
EOF(end of file)是文件结束的标志。
在scanf()中,占位符除%c外,都会自动忽略起首的空白字符。%c不忽略空白字符,总是返回当前第一个字符,无论该字符是否为空格,如果想要强制跳过字符前的空白字符,可以写成scanf(“ %c”,&ch),即%c前加上一个空格,表示跳过0个或多个空白字符。
%s的用法是从当前第一个非空白字符开始,一直到遇到空白字符(空格,换行符,制表符等)为止。
https://legacy.cplusplus.com/reference/cstdio/scanf/?kw=scanf