#include
int main(){
printf("hello,worldn"); //printf是打印输出函数
return 0
}
1.#include 必须要有.
2.符号为英文.
3.语句结束后以分号结尾.
4.每一个函数只有一个main函数.
1.1关键字
1.1.1数据类型的关键字
用于定义变量或者类型
char、short、int、long、float、double、struct、void、
1.char 字符型,用char定义的变量是字符型变量,占一个字节.
char ch=’a’ =是赋值号
char ch1='1'; //正确 用单引号引起单个字符正确,引起多个字符错误.
char ch2='1234' //错误
2.short 短整型,用short定义的变量是短整型变量,占2个字节.
short int a='10';
3.int 整型,用int定义的变量是整型变量,占4个字节.
int a=10;
4.long 长整型,用long定义的变量是长整型变量,占4个字节.
long int a=10;
5.float 单浮点型,用float定义的变量是单浮点型变量,占4个字节.
float a=3.6f;
5.double 双浮点型,用double定义的变量是双浮点型变量,占8个字节.
double a=3.6;
6.struct 这个关键字是用来定义结构体的.
7.void 空类型的关键字.
void不能用来定义变量,没有void类型的变量.void是用来修饰函数的参数或者返回值,代表函数没有参数或者没有返回值.
void fun(void){
}
//代表fun函数没有返回值,fun函数没有参数.
1.1.2存储相关的关键字
register、static、const、 extern
1.register 是寄存器的意思,用register修饰的变量是寄存器变量.即在编译的时候告诉编译器这个变量是寄存器变量,尽量将其存储空间分配到寄存器中.
注意:
(1)定义的变量不一定放在寄存器中.
(2)cpu取数据的时候去寄存器中拿数据比去内存中拿数据要快.
(3)因为寄存器比较宝贵,所以不能定义寄存器数组.
(4)register 只能修饰字符型及整型的,不能修饰浮点型
(5)因为register修饰的变量可能存放在寄存器中不存放在内存中,所以不能对寄存器变量取地址,因为只有存放在内存中的地址才有地址.
register char c; //正确
register short int c; //正确
register int c; // 正确
register float c; //错误
2.static 是静态的意思
static可以修饰全局变量,局部变量,函数
3.const 是常量的意思
用const修饰的变量是只读的,不能修改它的值.const也可以修饰指针.
4.extern是外部的意思,一般用于函数和全局变量的声明.
1.1.3其它关键字
sizeof、typedef
1.服务器托管网sizeof 使用来测变量,数组的占用存储空间的大小(字节数)
int a=10;
int num;
num=sizeof(a); //a的值为4
2.typedef 重命名相关的关键字.
typedef int INT a;
INT a=100;
扩展知识:在C语言给变量和函数起名时,由字母,数字,下划线组成,必须由字母或者下划线开头.起名字的时候要见名知意.
C 语言的程序结构 一个完整的 C 语言程序,是由一个、且只能有一个 main()函数(又称主函数,必须有) 和若干个其他函数结合而成(可选) main 函数是程序的入口,即 程序从 main 函数开始执行.
1.2数据类型
1.2.1基本类型
char、short、int、long、float、double
常量
在程序运行过程中,其值不可以改变的量.
变量
其值可以改变的量被称为变量.
字符变量
用 char 定义,每个字符变量被分配一个字节的内存空间 字符值以 ASCII 码的形式存放在变量的内存单元中.
字符串常量
是由双引号括起来的字符序列,如“CHINA”、”哈哈哈” “C program”,“$12.5”等都是合法的字符串常量.
字符串常量与字符常量的不同
‘a’为字符常量,”a”为字符串常量 每个字符串的结尾,编译器会自动的添加一个结束标志位”, 即“a”包含两个字符‘a’和’’
格式化输出字符:
%d 十进制有符号整数 %u 十进制无符号整数
%x 以十六进制表示的整数 %o 以八进制表示的整数
%f float 型浮点数 %lf double 型浮点数
%e 指数形式的浮点数 %s 字符串
%c 单个字符 %p 指针的值
特殊应用:
%3d %03d %-3d %5.2f
%3d:要求宽度为 3 位,如果不足 3 位,前面空格补齐;如果足够 3 位,此语句无效
%03d:要求宽度为 3 位,如果不足 3 位,前面 0 补齐;如果足够 3 位,此语句无效
%-3d: 要求宽度为 3 位,如果不足 3 位,后面空格补齐;如果足够 3 位,此语句无效
%.2f:小数点后只保留 2 位
1.2.2构造类型
概念:由若干个相同或不同类型数据构成的集合,这种数据类型被称为构造类型
例:int a[10];
数组、结构体、共用体、枚举
1.2.3类型转换
数据有不同的类型,不同类型数据之间进行混合运算时必然涉及到类型的转换问题.
转换的方法有两种:
自动转换: 遵循一定的规则,由编译系统自动完成.
强制类型转换: 把表达式的运算结果强制转换成所需的数据类型
自动转换的原则: 1、 占用内存字节数少(值域小)的类型,向占用内存字节数多(值域大)的类型转换,以保证精度不降低.
2、 转换方向:
编辑
五种转换的情况:
(1) 当表达式中出现了 char 、short int 、int 类型中的一种或者多种,没有其他类型了 参加运算的成员全部变成 int 类型的参加运算,结果也是 int 类型的
例 8: #include
int main(int argc, char *argv[]) {
printf("%dn",5/2);
return 0; }
(2) 当表达式中出现了带小数点的实数,参加运算的成员全部变成 double 类型的参加运算,结果也是 double 型。
例 9: #include
int main(int argc, char *argv[]) {
printf("%lfn",5.0/2);
return 0; }
(3) 当表达式中有有符号数 也有无符号数,参加运算的成员变成无符号数参加运算结果也是无符号数.(表达式中无实数) .
例 10: #include
int main(int argc, char *argv[]) {
int a=-8;
unsigned int b=7;
if(a+b>0) {
printf("a+b>0n"); }
else {
printf("a+b
(4) 在赋值语句中等号右边的类型自动转换为等号左边的类型
例 11: #include
int main(int argc, char *argv[]) {
int a;
float b=5.8f; //5.8 后面加 f 代表 5.8 是 float 类型,不加的话,认为是 double 类型 a=b;
printf("a=%dn",a)
return 0;
}
5) 注意自动类型转换都是在运算的过程中进行临时性的转换,并不会影响自动类型转换的变量的 值和其类型
例 12: #include
int main(int argc, char *argv[]) {
int a;
float b=5.8f; //5.8 后面加 f 代表 5.8 是 float 类型,不加的话,认为是 double 类型 a=b;
printf("a=%dn",a);
printf("b=%fn",b); //b 的类型依然是 float 类型的,它的值依然是 5.8
return 0; }
强制转换:
通过类型转换运算来实现 (服务器托管网类型说明符) (表达式) 功能: 把表达式的运算结果强制转换成类型说明符所表示的类型. 例如: (float)a; // 把 a 的值转换为实型 (int)(x+y); // 把 x+y 的结果值转换为整型 注意: 类型说明符必须加括号.
例 13: #include
int main(int argc, char *argv[]) {
float x=0;
int i=0;
x=3.6f;
i = x;
i = (int)x;
printf("x=%f,i=%dn",x,i);
return 0; }
说明: 无论是强制转换或是自动转换,都只是为了本次运算的需要,而对变量的数据长度进行的临时性 转换,而不改变数据定义的类型以及它的值.
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 【爬虫+数据清洗+可视化】用Python分析“淄博烧烤“的评论数据
目录 一、背景介绍 二、爬虫代码 2.1 展示爬取结果 2.2 爬虫代码讲解 三、可视化代码 3.1 读取数据 3.2 数据清洗 3.3 可视化 3.3.1 IP属地分析-柱形图 3.3.2 评论时间分析-折线图 3.3.3 点赞数分布-箱线图 3.3.4 评…