1.数据类型介绍
c语言中提供了丰富的数据类型来描述各种数据,以下为C语言中提供的各种数据类型:
1.1字符型
1.char
2.[signed] char //有符号
3.unsigned char //无符号
1.2整型
// 短整型short [ int ][ signed ] short [ int ]unsigned short [ int ]// 整型int[ signed ] intunsigned int// ⻓整型long [ int ][ signed ] long [ int ]unsigned long [ int ]// 更⻓的整型//C99 中引⼊long long [ int ][ signed ] long long [ int ]unsigned long long [ int ]
1.3浮点型
float //单精度浮点型
double //双精度浮点型
long double
1.4布尔类型
C语言原来并不存在这一类型,但在C99( C语言的官方标准第二版)中引入了布尔类型来判断真假
-Bool
注意:布尔类型必须加上头文件<stdbool.h>
布尔类型变量的取值是:true 或 false
1.5各种数据数据类型的长度
sizeof操作符
sizeof可以用来计算各种数据类型的长度,长度的单位为字节,操作方式如下:
# include <stdio.h>int main (){printf ( "%zd\n" , sizeof ( char )); //1个字节printf ( "%zd\n" , sizeof ( _Bool )); //1个字节printf ( "%zd\n" , sizeof ( short )); //2个字节printf ( "%zd\n" , sizeof ( int )); //4个字节printf ( "%zd\n" , sizeof ( long )); //4个字节printf ( "%zd\n" , sizeof ( long long )); //8个字节printf ( "%zd\n" , sizeof ( float )); //4个字节printf ( "%zd\n" , sizeof ( double )); //8个字节printf ( "%zd\n" , sizeof ( long double ));//8个字节return 0 ;}
2.signed 和 unsigned
signed int a;// 等同于 int a;
unsigned int a;
3.数据类型的取值范围
4.变量
4.1变量的创建
data_type name;| || |数据类型 变量名
变量在创建的过程中给一个初始值,就叫做初始化
int age = 18 ;char ch = 'w' ;double weight = 48.0 ;
4.2变量的分类
变量分为全局变量和局部变量两种
5.算术操作符
# include <stdio.h>int main (){int x = 4 + 22 ;int y = 61 - 23 ;printf ( "%d\n" , x);printf ( "%d\n" , y);return 0 ;}
5.2*
运算符 * ⽤来完成乘法。
# include <stdio.h>int main (){int num = 5 ;printf ( "%d\n" , num * num); // 输出 25return 0 ;}
5.3 /
5.4 %
6.赋值操作符:=和复合赋值
+= -=>>= <<=&= |= ^=
7.单目操作符 :++,--,+,-
7.1++
7.2--
7.3+ 和 -
8.强制类型转化
1.( 类型 )
int a = 3.14 ;//a 的是 int 类型 , 3.14 是 double 类型,两边的类型不⼀致,编译器会报警告
为了消除这个警告,我们可以使⽤强制类型转换:
int a = (int)3.14;//意思是将3.14强制类型转换为int类型,这种强制类型转换只取整数部分
9.scanf和printf介绍
9.1.printf
9.1.1基本用法
# include <stdio.h>int main ( void ){printf ( "Hello World\n" );return 0 ;}
如果⽂本内部有换⾏,也是通过插⼊换⾏符来实现,如下⽅代码:
# include <stdio.h>int main ( void ){printf ( "Hello\nWorld\n" );printf ( "Hello\n" );printf ( "World\n" );return 0 ;}
9.1.2占位符
// 输出 There are 3 apples# include <stdio.h>int main (){printf ( "There are %d apples\n" , 3 );return 0 ;}
9.1.3占位符列举
以下为常用的占位符:
• %c :字符。
• %d :⼗进制整数。
• %f :⼩数(包含 float 类型和 double 类型)。
• %n :已输出的字符串数量。该占位符本⾝不输出,只将值存储在指定变量之中。
• %p :指针。
• %s :字符串。
• %u :⽆符号整数(unsigned int)。
• %zd : size_t 类型。
9.1.4输出格式
printf() 可以定制占位符的输出格式。
9.1.4.1限定宽度
printf() 允许限定占位符的最⼩宽度。
# include <stdio.h>int main (){printf ( "%5d\n" , 123 ); // 输出为 " 123"return 0 ;}
# include <stdio.h>int main (){printf ( "%-5d\n" , 123 ); // 输出为 "123 "return 0 ;}
对于⼩数,这个限定符会限制所有数字的最⼩显⽰宽度。
// 输出 " 123.450000"# include <stdio.h>int main (){printf ( "%12f\n" , 123.45 );return 0 ;}
9.1.4.2正负号
9.1.4.3限定小数位数
// 输出为 " 0.50"# include <stdio.h>int main (){printf ( "%6.2f\n" , 0.5 );return 0 ;}
最⼩宽度和⼩数位数这两个限定值,都可以⽤ * 代替,通过 printf() 的参数传⼊。
# include <stdio.h>int main (){printf ( "%*.*f\n" , 6 , 2 , 0.5 );return 0 ;}// 等同于 printf("%6.2f\n", 0.5)
9.2scanf
9.2.1 基本用法
scanf()函数用于读取用户的键盘输入。
scanf("%d", &i);
9.2.2scanf的返回值
9.2.3赋值忽略操作符
有时,⽤⼾的输⼊可能不符合预定的格式。
# include <stdio.h>int main (){int year = 0 ;int month = 0 ;int day = 0 ;scanf ( "%d-%d-%d" , &year, &month, &day);printf ( "%d %d %d\n" , year, month, day);return 0 ;}