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:输出地址的转换说明         &取址符

- 指针类型的变量的值是地址、

  声明指针变量的时候必须指定指针所指向变量的类型