第五章 运算符、表达式和语句
- 关于+- 的一元运算符和二元运算符的区别
a++:a先创建自身的一个副本,然后a自增1,最后返回副本的值
a+=1: 事实上相当于++a
a=a+1: 虽然有点雷同于a+=1,但不同的是此时右值的a和1做相加操作,形成一个副本然后赋值给a,所以有额外操作
++a:将a自增1并返回a
鉴于a++和++a的差别,C++Primer建议用++a作为for循环的递增量
2.关于除法四舍五入
#include<stdio.h>
#include<string.h>
int main()
{ int a = ;
int b = ;
int c = (int)(a/1.0/b+0.5);
printf("%d \n",c); return ; }
/1.0 在保持值不动的情况下。使得结果是浮点数,同时进行+0.5保持四舍五入效果。
3. 关于运算优先级
关于运算符的结合从右到左(暂时不清楚可能造成什么误解)
第六章 c控制语句:循环
1.何为真何为假
假只有一个0,其他全部是真。
#include<stdio.h> int main()
{
while(-1.01)
{
printf("this is true\n"); } }
2.关于昨天遗留问题--大字符串如何输入
#include<stdio.h> int main()
{ char ch = getchar();
while(ch != '\n')
{
putchar(ch);
ch = getchar() ; }
putchar(ch);
return ;
}
读入字符串
#include<stdio.h> int main()
{ char ch = getchar();
char str[] = {};
int i = ;
while(ch != '\n')
{
str[i++]=ch;
// putchar(ch);
ch = getchar() ; }
str[i]=ch;
putchar(ch);
printf("*%s \n",str);
return ;
}
第七章 C控制语句:分支和跳转
- ctype.h
isalpha() 是否是字幕 isalnum() 是否是数字或者数字
isdigit()是否是纯数字 isblank()空格
islower() isupper()大小写
tolower() toupper() 大小写互转-- 如果不是对应的小写不转最终输出的是全小写或者全大写
- switch的存在意义
1.代码简洁 2.速度快
第八章 字符串输入/输出确认
文件的读取跟显示
#include<stdio.h> int main()
{ char ch;
FILE * fp;
fp = fopen("./while.c","r");
if(NULL == fp)
{ printf(" open fail\n"); }
while((ch=getc(fp))!= EOF)
{
putchar(ch);
} fclose(fp);
return ; }