C编程基础day05


字符常量'a'
字符串常量“a”,字符串常量以\0结尾

输出打印
%p 以16进制形式输出指针
int a= 1;
 printf("&a=%p\n",&a); /*打印a的地址*/

打印%时候需要写两个%%
prinf("%%\n");

%5d输出5个字符宽度,不足5个字符话用空字符填充,默认右对齐
printf("a=%5d",a); 

%05d输出5个字符宽度,不足5个字符话用0字符填充,默认右对齐
printf("a=%05d",a); 

%-5d输出5个字符宽度,不足5个字符话用空字符填充, -符号代表左对齐, 0和-不能同时使用(同时使用在右边补0就改变其值大小了。)
printf("a=%-5d",a); 

%f 默认小数点后有6位数,不够6位话补0.
printf("c1=%lf\n",c);
%8.3f  8代表有总共有8位字符,3代表后边有3位小数。
printf("c1=%8.3f\n",c);

puchar 输出一个字符到屏幕上
char ch1 = 'z';
    putchar(ch);

 输入
整形输入 int a; scanf("%d",&a);

字符输入, 当使用scanf输入字符的时候,编辑器默认会把内容先放到一块内存(缓冲区),scanf自动在缓冲区读完内容。 下边例子说明缓存区存储

字符a 回车\n
{
char a;
  printf("请输入a:");
  scanf("%c",&a);        /*第一次使用scanf函数只读字符a,缓冲区中留下回车\n*/
  printf("a=%c \n",a);
  
  char b;
  printf("请输入b:");
  scanf("%c",&b);   /*第二次使用scanf函数,因为缓存区中有内容,所以直接取内容无需输入*/
  printf("b=%c \n",b); /*这一句换为打印%d时看出打印的是10,即回车键*/

  char c;
  printf("请输入c:");
  scanf("%c",&c);/*第三次使用scanf函数,缓冲区为空,正常存取数据*/
  printf("c=%c \n",c); /*正常显示*/
}

为避免上述情况可以如下处理
{
char a;
  printf("请输入a:");
  scanf("%c",&a);        /*第一次使用scanf函数只读字符a,缓冲区中留下回车\n*/
  printf("a=%c \n",a);
  
  char b;
  /*仅仅起到吃掉第一步的回车键\n*/
  scanf("%c",&b);


  char c;
  printf("请输入c:");
  scanf("%c",&c);/*第三次使用scanf函数,缓冲区为空,正常存取数据*/
  printf("c=%c \n",c); /*正常显示*/
}

a=getchar();函数读取缓存区键盘的字符;

两个数相除,要想得到小数点后边的数时分子或分母至少有一个是小数,否则得到是取整后正数。
    int a= 5, b=2;
    double c;
    c = a/b;
    printf("c1=%lf\n",c);  /*得到2.000000*/
    c = 1/2;
    printf("c2=%lf\n",c); /*得到0.000000*/
    c = 1.0/2;
    printf("c3=%lf\n",c);/*得到0.500000*/
    c = a*1.0/2;         /*乘以1.0变为小数,然后再计算可以得到更准确结果*/
    printf("c4=%lf\n",c);/*得到2.500000*/

运算符
|| 左边为真则右边不执行
&& 左边为假则右边不执行

类型转换:
1、隐式转换:编译器内部自动帮我们转换。
 double a; 
int b=10; 
a=b; 
printf("a=%lf\n",a); /*结果为a=10.000000 ,b的类型没有变。*/

2强制类型转换: (类型)需要转换的变量名。
    double c ;
    c =(double)1/2; /*将1强制转化为double型*/
    printf("c=%lf\n",c);
    return 0;
  
浮点型打印说明,一定要按照变量类型来
整型补要以浮点%lf型打印,会出错,除非强制类型转换
int  a=11;     
    printf("a=%lf\n",a); /*结果为a=0.000000 ,结果出错*/
浮点型不要用整型%d打印,会出错,除非强制类型转换
double b=3.14;
    printf("b=%d\n",b); /*结果为随机一个数,结果出错*/

强制类型转换原则:数据类型小的往数据类型大的转, 因为大转小会溢出
char ->int

任何编程语言都是3种结构:顺序、选择、循环。

三目运算符 a>b?a:b;  /*? :是三目运算符*/

QT IDE调试代码
新建项目——>非QT项目——>纯C语言项目
1、设置断点 F9
2、调试运行 F5 、F10、F11
F5就是继续运行,不在中断,直到遇到断点。
F10是逐过程运行,也是一次运行一条语句,但遇到子函数调 用时不进入,直到子函数完成后直接继续。
F11是逐语句,和F10的区别是,当遇到子函数调用时,也会进入子函数进行单步调试。

goto 无条件跳转, goto语句不建议使用,用不好程序非常乱。
goto只能跳转到同一个作用域内。



猜你喜欢

转载自blog.csdn.net/Shayne_Lee/article/details/80933466