您的位置:首页 > 编程语言 > C语言/C++

【学习ios之路:C语言】数据类型、常量变量、运算符、表达式、格式化输入输出

2014-12-07 17:21 951 查看
1.数据类型、常量变量.

变量定义: 数据类型 变量名 = 初始值; int x = 10; = 赋值符号,即将等号右边的值赋值给左边,赋值过程相当于拷贝,而不是剪切.

变量名的命名规范:

1. 只能是数字,字母,下划线组成.数字不能开头.

2.不能和系统关键字重名

3.变量名要具有解释性

4.变量名不能重名.

<span style="font-size:14px;"> //例题:将两个变量a,b的值进行互换,方法如下: int a = 5;int b = 10;

//1.方法:再定义个变量
 int c = 0;
c = a ;
a = b;
b = c ;
//方法2 :这种方法不借助第三方,但是存在溢出现象,例如:a 取int范围最大值.
a = a + b;
b = a - b;
a = a - b;
//方法3 :异或运算 //相同为0,不同为真. 0 ^ 0 = 0 1 ^ 1 = 0 1^0 = 1
 a = a ^ b;
b = b ^ a;
a = b ^ a;</span>

2.运算符、表达式、格式化输入输出

运算符:

1.算数运算符: + - % / ++ --

<span style="font-size:14px;">//整数除以整数得到的还是整数.如果两个整数相除获取小数部分,则需要参与计算的双方至少有一个是小数.
float div = 0;
div = (float)n / m;//强制类型转换.
div = n *  1.0 / m ;//强制类型转换.
div = n / m * 1.0;//优先级问题,输出的结果为:1.000000
div = n / (m * 1.0);//需要加一个符号 .
printf("%f\n", div);</span>

 <span style="font-size:14px;">
</span>
<span style="font-size:14px;">   // b = a++ ; 相当于 b = a; a = a +1;
//  b = ++a ;  相当于 a = a +1; b = a ;</span>


2.复合运算符 += -= /= *=
<span style="font-size:14px;">   int num1 = 10, num2 = 2;
num1 += num2; num1 /= num2;
num1 *= num2; num1 -= num2;</span>


表达式:

判断是否是表达式,只要看式子有无结果,有结果就为表达式,无结果,则不是表达式,最简单的表达式就是一个常量或者一个变量:

<span style="font-size:14px;">    3           //是表达式
3 + 4       //是表达式
a + b       //是表达式
a += 5      //是表达式
int a = 5  //不是表达式</span>


格式化输入输出:

<span style="font-size:14px;">  //输入scanf ,输入时不要加换行符\n.

int  data = 0, data1 = 0;
//取地址符
printf("plase input two number:\n");
scanf("%d%d", &data, &data1);
printf("two number are : data1 = %d, data = %d\n", data1, data);

printf("\\\n");   // 结果\
    printf("%%%%\n"); //%%
    printf("\"");     //"
 
//   %d      --整型   %4d , %-4d
//   %f      --浮点型 %.2f , %3.f
    //   %c      --字符型
    //   %ld     -- 长整形
//   %lu     -- unsigned long ,无符号长整型,>=0
//   %s      -- 字符串</span>


例题:
<span style="font-size:14px;"> /*
先输入字符和先输入数字的区别:
先输入字符 ,在输入数字,能输出结果.
但先输入数字后,需要enter键即\n.而\n相当于一个字符,所以结果m是你输入的数字,但是字符则为空,即为\n;
结果:m = 8 , n =  ; 如果想先输入数字,再字符,并能打印正常的结果,需要加一个清楚缓冲区内容操作.即为:
rewind(stdin);即当输入数字结束后,执行,清楚里面缓冲的\n.即可再输入想要输入的字符.
*/
int  m = 0;
char n = 0;
scanf("%d", &m);
<pre name="code" class="plain">    scanf("%c", &n);//交换顺序,需要加入清除缓冲区的操作.\n相当于一个字符.
printf("m = %d , n = %c", m , n);</span>


用scanf输入,输入与对应需要出入不一样是的情况:

<span style="font-size:14px;">  /*
输入abc,如果不加rewind(stdin),结果为 n = a ,m = 0;而加上清楚缓存内容语句,控制台将会再有一次输入机会.
输入abc,对应n能找到对应的值.而m找不到对应的值,结果为0.
*/
int  m = 0;
char n = 0;
scanf("%c", &n);//交换顺序,需要加入清除缓冲区的操作.\n相当于一个字符.

//清除缓冲区的内容,能输入下一个数字.
// rewind(stdin); //
scanf("%d", &m);
//scanf("%d%c", &m, &n);//不行,接受到得时回车键.
printf("m = %d , n = %c", m , n);</span>


<span style="font-size:14px;">    /*
连续输入和单独输入的区别:
连续输入:如果前面的数没能取到对应的,后面就不回取到对应的值,即相当于优先级.如果前面取不到值,后面就更不会取到.
即当输入m是.连续输入当开始是数字,但是没有,所以i = 0,因为连续,对应 j的值也取不到,所以为刚开始定义的初始值.
单独输入:相互之间不影响.当输入m.对应 i = 0 , m = m;
*/

int i = 0;
char j = 'a';//初始值为a

//连续 输入
scanf("%d%c", &i, &j);  //输入m然后 回车,i = 0 , j = a
//单独输入
scanf("%d", &i);
scanf("%c", &j); // 输入 m 然后回车,i = 0 , j = m
printf("i = %d , j = %c", i , j);</span>



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐