版权声明:如果觉得文章对你有用,转载不需要联系作者,但请注明出处 https://blog.csdn.net/jinxin70/article/details/83211100
变量的定义、初始化、格式化输出
#include <stdio.h>
int main(int argc, const char * argv[]) {
float floatValue;//定义变量
floatValue = 10.1f;//初始化(第一次赋值)
printf("%f\n",floatValue);
return 0;
}
变量的作用域、内存寻址方式、取地址符
#include <stdio.h>
int main(int argc, const char * argv[]) {
//局部变量在函数内部有效
int number;
{//代码块作用域
//int number;//如果定义了number,下一行赋值就不会找外层的number,直接找这行定义的number
number = 10;
printf("%i\n",number);
}
printf("%i\n",number);
//内存以字节为单位
//内存寻址从地址大的往地址小的找,先定义的变量的内存地址一定大于后定义的变量地址
//变量的首地址即为变量的地址
//不同的数据类型占用不同数量的字节
//获得变量的地址,使用&,占位符为%p
printf("%p\n",&number);//输出十六进制数
return 0;
}
printf函数的使用、位宽、保留位数、一些坑
#include <stdio.h>
int main(int argc, const char * argv[]) {
// printf("%i\n",10);
//
// printf("%f\n",10.2f);
//
// printf("%c\n",'a');
//
// printf("%lf\n",9.9);
//
// printf("1、指定位宽\n");
/*
//默认位宽是右对齐,如果需要输出的类型宽度不够,会在左边补空格
printf("%5i\n",99);
//在位宽前加上'-'号,会改变对齐方式为左对齐
printf("%-5i\n",99);
*/
//位宽的用处:格式化输出字符
//位宽的坑:如果指定了位宽,但是实际输出的内容超过指定宽度,会按照实际宽度输出
// int number = 9999;
// printf("%2i\n",number);
// number = 8;
// printf("%02i\n",number);//位宽前加0,宽度不够会补0输出
// printf("2、保留位数\n");
//%.nf n是保留多少位小数
// float floatValue = 3.14;
// printf("%.2f\n",floatValue);//3.14
//3.%f各种坑
float floatValue = 3.1415966525;
printf("%.10f\n",floatValue);//3.1415965557
//因为float类型的有效位是7位,有效位从第一个数(不是小数)开始,不包括小数点
//如果想完整输出,使用double类型。double类型的有效位是15
double doubleValue = 3.1415966525;
printf("%.10lf\n",doubleValue);
return 0;
}
scanf函数的使用、输入多个值时使用分隔符、占位符%c、scanf的结束符\n
#include <stdio.h>
int main(int argc, const char * argv[]) {
// //1、定义变量
// int number;
// //2、使用scanf函数,传入变量的地址
// scanf("%i",&number);
//
// printf("number = %i\n",number);
//输入两个数,输出相加的结果
// int num1,num2;
// printf("请输入第一个数字,以回车键结束\n");
// scanf("%i",&num1);
// printf("请输入第二个数字,以回车键结束\n");
// scanf("%i",&num2);
//
// int result = num1 + num2;
// printf("result = %d\n",result);
//scanf输入多个
//scanf("%i,%i",&num1,&num2);//必须和格式化字符串格式相同的输入,这里要用逗号隔开两个数,比如:4,23
//scanf("%i%i",&num1,&num2);//如果多个数据之间没有其他字符,可以利用空格,回车,table键作为分隔,%c的占位符除外
char charValue;
int num1,num2;
// scanf("%i%c%i",&num1,&charValue,&num2);
//
// printf("num1 = %i,char = %c, num2 = %i\n",num1,charValue,num2);
//123 a 456
//num1 = 123,char = , num2 = 0
//由上面的输出可以看出,char接收了输出的空格,num2无法接收a。所以在使用scanf输出多个值,需要用分隔符
// scanf("%i,%c,%i",&num1,&charValue,&num2);
//
// printf("num1 = %i,char = %c, num2 = %i\n",num1,charValue,num2);
//123,a,456
//num1 = 123,char = a, num2 = 456
//回车\n是scanf函数的结束符,不能在scanf的格式化字符串末尾写\n,也可以最后输入\n,或者不匹配的数据,让程序结束
// scanf("%i\n",&num1);
scanf("%i\n%i",&num1,&num2);
printf("num1 = %i, num2 = %i\n",num1,num2);
return 0;
}
scanf函数的坑、输入缓冲区
#include <stdio.h>
int main(int argc, const char * argv[]) {
int num1,num2;
char charValue;
scanf("%i,%c,%i",&num1,&charValue,&num2);
int result = num1 - num2;
printf("result = %i\n",result);
//输入缓冲区中有内容,就不会要求用户输入内容,直接使用缓冲区中数据。
//连续使用scanf时的坑,
//避免入坑的方法,就是将scanf中的占位符用分隔符分开
return 0;
}