C语言的基本运算以及流程控制学习的注意点

 

在学习基本算法与流程控制之前,先补充在学习C语言基础语法时的变量内存分析以及scanf函数的一些用法注意。

一、变量内存分析:不同的数据类型所占用的字节是不一样的,数据越大,所占用的字节数就越多,在系统分配内存时,内存寻址是由大到小的,在系统中验证输出内存地址的C语言语句是:printf("变量的内存地址是:%p" , &变量名)。其中&是一个地址运算符,用来取得变量的地址,%p是用来输出地址。

二、scanf函数:scanf函数与printf函数是相对的,printf函数是输出一些数据到电脑屏幕上,而scanf函数则是需要用户输入数据,当程序执行到scanf函数时会暂时停止,需要用户输入信息按回车键后再继续执行。

scanf函数只接受变量的地址,因此在使用scanf函数时scanf("%d" , &变量名)。注意:scanf函数中不能有换行符\n。在一次性输入多个数值时,编写代码以某些符号隔开,在用户输入时也要输入相同的符号。

第一讲     C语言的基本运算 

c语言的基本运算主要包括算术运算、赋值运算、自增自减运算、关系运算、逻辑运算以及三目运算等,下面我们来交流一下我觉得其中的易混淆点以及注意的地方。

1、算术运算:主要包括的就是加,减,乘,除和取余运算,其中需要注意的是取余运算又称为模运算,在%的两边也都是整数,并且%取余的结果正负只跟%左边的数值的正负有关。(%左边为正则取余的结果为正,反之左边为负值结果就是负值)

2、赋值运算:这个没有什么多说的,比较简单,注意与==区分好。

3、自增自减运算:体会a=a+1,a+=1,a++,++a的相同和不同之处。注意++a是在a自增后使用,而a++则是先使用再自增。sizeof是计算其所占的内存的字节数

4、关系运算:C语言的真假问题,在C语言中任何非0的值都为真(无论正数负数),只有0才为假。关系运算包括比较大小,等于或不等于等等。

5、逻辑运算:逻辑与&&,逻辑或||,逻辑非!条件,其中逻辑非是条件成立则返回0,如果条件不成立则返回1.

6、三目运算:三目运算符:条件 ? 数值1 : 数值2  条件成立则返回数值1,不成立返回数值2

第二讲     流程控制中的选择结构注意点

C语言选择结构主要包括if语句和switch语句,在学习if语句时有个作用域问题是需要注意的,下面就用代码来描述一下:

 1 #include <stdio.h>
 2  
 3 int main()
 4 {
 5      int a = 10;
 6      if (a>1)//在执行if语句时未加大括号,条件成立后执行下一语句,但不管条件是否成立,系统都会打印B,输出B的语句并不在条件语句里
 7          printf("A\n");//这么写可读性不强,但在程序运行编译时没有问题,是属于if结构中的一种
 8          printf("B\n");
 9      return 0;
10 }

再举一个例子跟上个例子有点类似,但此处涉及到作用域的问题:

1 #include <stdio.h>
2 int main()
3 {
4      if(10>6)
5         int a = 5;//这么写会报错,因为a的作用域不明确,如果需要定义a则需加上大括号。
6         printf("%d\n", a);//无法输出a
7      return 0;
8 }

总结一下if语句注意的地方,如果要在if语句后面的语句中定义新的变量,必须用大括号,这也是为了保证代码的可读性与规范。

同样的问题在switch语句中也会有类似的情况出现,就是在case语句中涉及到作用域的问题时,需要用大括号括起来,举个例子:

 

 1 #include <stdio.h>
 2 int main()
 3 {
 4      char c='+';
 5      int a = 10;
 6      int b = 20;
 7      switch (c) {
 8           case '+':
 9              int sum=a+b;//此处无法定义,会报错,因为sum的作用域不明确,系统无法区分是在case中还是在整个程序中,因此如果要定义需要加上大括号。
10              printf("和是%d\n", sum);
11              break;
12           case '-':
13              int minus=a-b;//此处也是一样,会报错。
14              printf("差是%d\n", minus);
15              break;
16      }
17      return 0;
18 }

 

本章学习总结:

     本章主要学习了C语言的基本运算,包括算术运算(加,减,乘,除,取余),赋值运算,自增自减运算,关系运算,逻辑运算和三目运算,在执行C语言的基本运算时,需要注意运算符的优先级的问题,同时要区分好赋值运算符=以及等于==,虽然现在理解但在今后的代码中很容易忽视和混淆。本章的第二块内容是选择结构中的注意点,在if和switch语句的case后面定义新的变量,必须要用大括号{}包住,不然会因作用域不明确而报错,其定义的变量只在其所在的代码块中定义,执行后就结束。这也是提醒我们注意平时的编程规范问题,要养成好的编程习惯和规范,以免今后出现一些不必要的错误。

 

posted @ 2015-03-31 23:46  呀,呀,哎哟  阅读(609)  评论(0编辑  收藏  举报