类型用来创建变量,当创建变量时赋值叫初始化
一个局部变量不初始化时,默认是随机值
一个全局变量不初始化,默认值是0
局部变量是放在内存的栈区的,全局变量是放在内存的静态区
当全局变量和局部变量名字相同的情况,且都可以使用的时候,局部变量优先
\
\
%d---打印有符号的整数
%u---打印无符号的整数(0和正数)
\
\
#include <string.h> 引用头文件
int len=strlen("abc"); 用于求字符串长度,不算\0,遇到\0才停止,如果没有则为随机值
printf("%d\n",len);
\
\
sizeof 表达式
sizeof(类型) 单位是字节,用来计算类型长度
printf("%zd\n",sizeof a)
printf("%zd\n",sizeof(int))
\
\
signed和unsigned
signed关键字,表示一个类型带有正负号,包括负值
unsigned关键字,表示该类型不带有正负号,只能表示0和正数
对于int类型,默认是带有正负号的,也就是说int等同于signed int
unsigned的好处
同样长度的内存表示的最大整数值,增大了一倍,比如,16为的signed short int的取值范围是-32768~32767;unsigned short int的取值范围是0~65535。
\
\
int类型的整数的10进制形式打印:%d short int %hd (10) long int %ld(10)
int类型的整数的8进制形式打印:%o
int类型的整数的16进制形式打印:%x
%c-打印字符
%s-打印字符串
%f-float(默认打印小数点后面6位)
%lf-double
%Lf-long double
%p-地址打印 printf("%p", &arr [i] )学到数组回来补充,打印的是16进制的数
%zd-size_t
\
\
printf()可以在输出文本中指定占位符
所谓占位符,就是这个位置可以用其他值代入
上面示例中, There are %d apples \ n 是输出文本,里面的%d 就是占位符,表示这个位置要用其他值来替换。占位符的第一个字符一律为百分号%,第二个字符表示占位符的类型,%d 表示这里代入的值必须是一个整数。
printf ()的第二个参数就是替换占位符的值,上面的例子是整数3替换%d,执行后的输出结果就是 There are 3 apples .
常用的占位符除了%d ,还有%s 表示代入的是字符串。
\
\
会加空格来占位,%5d就是限定最小总宽度为5,“不够的话”就以加空格的方式来补。
\
\
Printf("%+d",10)//输出+10
printf("%+d",-10)//输出-10
\
\
%f:默认小数点后6位
%12f:限定字符宽度最小12位(小数点也算一位)
限定小数位数(.2)加一个点再加一个数字
printf("%f\n",0.56) 输出值为0.560000
printf("%.1f\n",0.56) 输出值为0.6,还有就是会四舍五入
还可以限定小数位数与限定最小宽度结合使用
printf("%6.2f",12.2) 打印值为( 12.20)一共有占6位,小数点后两位
最小宽度和小数位数这两个参数还可以用 * 代替,通过printf参数传入
printf(%*.*f\n",6,2,12.2)
输出部分字符串使用%.5s 例如“hello word”即输出“hello"5个字符
\
\
scanf---输入
printf----输出有n占位符,参数就有n+1个
scanf(%d",&a)第一个参数是占位符,有多少个占位符就有多少个变量
scanf 遇到空格会停止打印