C语言笔记4
- 条件表达式:基本结构 expression1 ? erpression2 : expression3
若expression1 真,值与2相同,若1假,值与3相同
- continue:如果continue语句在嵌套循环内,则只会影响包含该语句的内层循环
对于while 和 do-while循环,continue之后的第一件事是对循环测试条件求值
==对于for循环,continue之后第一件事是对更新表达式求值,再对循环测试表达式求值==
while (getchar() != '\n')
;
while (getchar() != '\n') //continue可以当作占位符
continue;
//这个程序有什么意义呢?说是丢弃一行中的其他字符
-
//这段代码可以跳过制表符 意思是打印ch的时候制表符不会被打印出来
#include<stdio.h>
int main(void)
{
char ch;
while ((ch = getchar() ) != '\n')
{
if (ch == '\t') /*if (ch != '\t')
continue; putchar(ch);*/
putchar(ch);
}
return 0;
}
-
#include<stdio.h>
int main(void)
{
char ch;
int count;
for (count = 0; count < 10; count++)
{
ch = getchar();
if (ch == '\n')
continue;
putchar(ch);
}
return 0;
}
/*1.为什么我输入了超过十个字符,但是并未终止程序
2.我连着打十个换行符,程序倒是终止了
3.为什么我输入字母与换行符混合的情况,输出结果那么离谱 */
- break:直接终止包含break的循环,并继续执行下一阶段
在for循环中,执行完break语句后会直接执行循环后面的第一个语句,连更新部分都跳过
- switch:其在()内的测试表达式的值应该是一个整数值(包括char)
case标签必须是整数类型(包括char)的常量或者常量表达式(表达式中只含整型常量)
- ctype.h系列中的toupper()函数,可以把字母转化成大写字母
- 一般而言,用户输入的字符被储存在缓冲区的临时储存区,按下Enter键之后,程序才可以使用
-
//输入一个回车 打印12345一次 输入ssd加回车 打印12345四次
#include<stdio.h>
int main(void)
{
while (getchar() != 'y')
printf("12345");
return 0;
}
要解决把回车抛弃掉,可以使用while循环丢弃输入行最后剩余的内容,包括换行符,这样可以把 no 和no way 这类的视为简单的n,代码如下
while (getchar() != '\n') //continue可以当作占位符
continue;
//改进一下上面的12345就是如下代码 这样输入sad加回车只会打印12345一次
//如果直接敲一个回车,打印12345,再连敲两次回车,会再打印12345一次
#include<stdio.h>
int main(void)
{
while (getchar() != 'y')
{
printf("12345");
while (getchar() != '\n')
continue;
}
return 0;
}
/*试试 敲一个回车 加一个1 再敲一个回车 再敲一个回车 */
- 函数:完成特定任务的独立程序代码单元
ANSI C 要求每个变量声明前都声明其类型 如下
`void dibs (int x, int y) ` 可以 `void dibs (int x, y)`则不行
函数原型里的变量名是假名,可以省略,且不必与函数定义里的形参的名字保持一致
- float类型的值被作为参数传递的时候会被升级为double类型
- 递归:函数自己调用自己 尾递归:相当于循环
- %p:输出地址的转换说明 &取址符
- 指针类型的变量的值是地址、
声明指针变量的时候必须指定指针所指向变量的类型