c语言中的数据可以分为标识符,常量和变量。
(有一个重要的东西:c语言中全部字都要用英文输入,用中文键盘输入会报错)
一、用户标识符
用户标识符可以由字母,数字,下划线构成
例:有时候可能会定义一个整型变量a,当一个工程足够大的时候可能二十六个字母都不够了,或者为了更好的记忆一个工程里的变量,我们可以把用户标识符定义成a3,a4,x_coordinate等等
注意:用户标识符可以由字母数字下划线组成,但是下划线不能开头,而且定义的用户标识符不能是c语言中已经包括的关键字!!
附上c语言关键字(初学者不必死记硬背这些定义)
auto :声明自动变量
break:跳出当前循环
case:开关语句分支
char :声明字符型变量或函数返回值类型
const :声明只读变量
continue:结束当前循环,开始下一轮循环
default:开关语句中的“默认”分支
do :循环语句的循环体
double :声明双精度浮点型变量或函数返回值类型
else :条件语句否定分支(与 if 连用)
enum :声明枚举类型
extern:声明变量或函数是在其它文件或本文件的其他位置定义
float:声明浮点型变量或函数返回值类型
for:一种循环语句
goto:无条件跳转语句
if:条件语句
int: 声明整型变量或函数
long :声明长整型变量或函数返回值类型
register:声明寄存器变量
return :子程序返回语句(可以带参数,也可不带参数)
short :声明短整型变量或函数
signed:声明有符号类型变量或函数
sizeof:计算数据类型或变量长度(即所占字节数)
static :声明静态变量
struct:声明结构体类型
switch :用于开关语句
typedef:用以给数据类型取别名
unsigned:声明无符号类型变量或函数
union:声明共用体类型
void :声明函数无返回值或无参数,声明无类型指针
volatile:说明变量在程序执行中可被隐含地改变
while :循环语句的循环条件
还有一些包含在库里的函数也是不能写成用户标识符的
例:当你导入了<stdio.h>库的时候,包含在这里的printf函数也是不能被定义成用户标识符的,库就相当于一个扩展包。
二、数据类型
1、整形变量
在c语言中一个整形变量只能存储整形数据,定义一个整形数据的时候一般会用 int 用户标识符;
例:int c;//注c语言在一条语句结束后会在后面加上 ;
这个时候c就被定义成一个整型变量了,那么如何给c进行赋值呢?
c=1;这样就给赋值为1了
后续要改变c的值只需要c=你想要存储的数据就可以了(不要忘记;)
重点:当整形变量中存入实型数据时(又叫浮点型(就是带小数点的数))
例:int shu=1.2;
因为int是整形数据,他只能存储整形数据,最终这个 shu会存进去1(1.9也会存进去1)所以这个shu=1不是1.2
int的范围:占用2字节,16比特,数据范围为-32768~32767(比这个大的数要用long来修饰)
一道计算题
int a=3,b=2;
int c=a/b; //这个/相当于除号,c语言中没有除号
那么c=几呢?1.5?错!!!因为int只能存储整形,所以结果c是1
几个拓展,定义的时候可以通过long(加范围),unsigned(无符号型0~65535)等来修饰
2、实型
又称浮点型,就是带小数点的数,定义的关键字是(float,double参考int理解)
float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;占用4个字节
double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。占用八个字节
3、字符型
char占一个字节,定义参考上面
再将字符型的之前先补充一个概念
字符与字符串
字符:有单引号括起来的单个字符
例:'a'是字符a
字符串:有双引号括起来的单个或多个字符
例:"jdaskdhaskdhl","你好"
关于#include<stdio.h>
一个经典的程序:
#
#include<stdio.h>
int main()
{
printf("Hello world");
return 0;//不要在意这个,后面学函数的时候会讲,在这里把这个代码删掉也是一样的
}
点击编译并运行后,会显示 Hello world这个字符串,printf函数是打印的意思。(printf包含在stdio.h这个库中,所以在主函数main()前要加入#include<stdio.h>
关于主函数的结构
int main()
{
你要写的代码;
}
显示数据
#include <stdio.h>
int main()
{
int c=1;
printf("%d",c);
return 0;
)
这边printf里的%d是什么意思呢?
这是用于声明输出的数据c是个整形数据
实型引号中的部分要改成%f(%f默认保留6位小数,如果想改变,就可以改成.你想保留的位数f
例:printf("%.2f",c);是保留两位小数)
字符用%c
字符串是%s
......
printf(”如果这里面有字或者是其他的符号,总之简单理解为与c无关的东西,正常打印就是了%d“,c);
一个例子:
include <stdio.h>
int main()
{
int a=1;
printf("123!@#$^&*永远滴神%d",a);
return 0;
}
//这个程序会输出123!@#$^&*永远滴神1,大概理解了吧
另一个stdio.h里比较重要的函数
scanf
scanf("%d",&a);
手动输入a的数值,参考上面,%d是整形,所以是输入一个整形数据a
附几张图: