添加static关键字部分 |
int的长度会跟随CPU的不同而发生变化,比如:
所以通常情况下使用C头文件<stdint.h>
中提供的数据类型:
同时,该头文件提供了数据类型的最大最小值宏定义,如下:
详细说明参考博文:整数在计算机中的存储
① 局部变量:在函数内部定义,函数结束后变量自动销毁;
② 全局变量:在函数外部定义,整个文件内部都可以使用该变量,程序结束后销毁;
③ 外部变量:使用extern修饰,表示该变量在其它文件中定义为全局变量;
④ 静态变量:使用static修饰,表示该变量在定存中只有一份定义;
⑤ 易变变量:使用volatile修饰,表示该变量是易变的,防止编译器优化;
① 使用const修饰符,作为只读变量:
字面值的数据类型会被编译器自动识别:整数默认int,浮点数默认double,如果存不下则自动寻找更大的类型存储。
可以在数值后面加后缀,显示指出要使用的数据类型:
因为float只能存储小数点后6位的精度,所以肯定错误。
如果将2.0e20改为2.0e4,则运行结果为:
因为浮点数不能精准的存储,所以需要在编程时注意。
常用的一些占位符如下表:
使用e计数法输出浮点数 |
无符号十六进制输出整数 |
在%
和转换字符
之间插入修饰符可修饰基本的转换说明。
scanf的作用:将用户从键盘输入的字符串转换为字符、字符串、整数、浮点数。
//这种用法,在输入的时候必须将非占位符也输入特别注意!输入参数是变量的地址!
scanf函数使用空白(换行符、制表符、空格)把输入分成多个字段,在依次把转换说明和字段匹配时跳过空白。
① 在printf中,*修饰符用来代替字段宽度,由变量指定。
② 在scanf中,*修饰符表示跳过这个转换说明符。
C语言中,两个整数之间用
/
运算,结果也是整数。
特别注意!case之后的标号只允许字面常量,且是整型。(变量、const只读变量、浮点数都是错误的)。
函数是C语言的基本单位。
函数返回值类型 函数名(函数参数列表);
函数返回值类型 函数名(函数参数列表)
解决同类型数据的存储问题。
不完全初始化,未被初始化的元素为0:
不初始化,所有元素都是垃圾值:
//原理:第一个元素初始化为0,属于不完全初始化,所以全部为0
③ 数组可以进行的操作:
//一个3行4列的二维数组
整体赋值的另外一种写法:
物理内存是线性连续的,所以多维数组本质并不存在。
3行4列的二维数组,本质上是3个元素一维数组,只不过每个元素也是含有4个小元素的一维数组。
static关键字表示静态的,可以用来修改变量和函数。
static关键字修饰变量后,表示该变量是静态的,无论定义多少次,在内存中只有一份。
static修饰静态函数,表示此函数只能在本文件中使用。
按照程序的分割符进行输入
scanf("%d,%d",&a,&b); // 我们应该时输入12,34这种情况,因为scanf中试是逗号作为分割符,所以数据中也应该使用相同的符号作为分割符