20150330数据类型、运算符

来源:互联网 发布:mac python idle 编辑:程序博客网 时间:2024/06/05 23:52

一.整数常识

库函数<limits.h>

SHRT_MIN , SHRT_MAX  INT_MAX , INT_MIN LLONG_MAX , LLONG_MAX

1.float的极限库函数为<float.h>——FLT_MAX、FLT_MIN

2.int 和long int在32位以上的机器是4个字节大小,嵌入式的场合16位机器是2个字节大小,和short相同

3.int a=INT_MAX;  int b=INT_MIN;
long a1=LONG_MAX long b1=LONG_MIN
printf("%d,%d",a,a1,b,b1);  //2147483647,-2147483647,2147483647,-2147483647;说明long和int极限值相同

4.unsigned int 极大值大于int,但是不能表示负数


三.中美GDP

#include<stdio.h>#include<math.h>#include<Windows.h>void main(){double ch=10.0;double am=17.0;  //底数double chd = 1.07;double amd = 1.03;//增长率for (int i = 1; i <= 100; i++){printf("\n中国%d年GDP=%f万亿美金", 2014 + i,ch*pow(chd,i ));printf("美帝GDP=%f", am*pow(1.03, i));printf("差距=%f", ch*pow(chd, i) - am*pow(1.03, i));if ((ch*pow(chd, i) - am*pow(1.03, i)) >0){//MessageBoxA(0, "恭喜天朝", "终于超越美帝", 0);}}getchar();}

四.字符与字符串

1.字符长度注意:'A'为了兼容扩展,宽字符,一般情况下占4个字节

#include <stdio.h>void main() {char ch = 'A';int num = 1;printf("%d,%d", sizeof(num), sizeof(1));//4,4printf("%d,%d", sizeof(ch), sizeof('A'));  //1,4system("pause");}

2.字符串不可以直接相加:“123”+“456”


3.大小写转换

void main() {char ch = getchar();if (ch > 'A' && ch < 'Z') {   //判断是大写字符ch = ch + 32;  //转化}}

五.变量声明的意义

1.建立变量符号表

2.告诉操作系统给该类型的变量分配多大的内存

3.变量的数据类型指示了系统如何解析该变量

4.变量的数据类型确定了该变量的取值范围

5.不同的数据类型有不同的操作


六.变量类型转换

类型转换顺序:char、short->int->unsigned->long->double     float->double

例:10+'a'+1.5-8765.1234*'b'

a.进行10+'a'的运算:将'a'转换成整数97,得到和为107

b.进行107+1.5的运算:将107转换成double,得到和为108.5000000

c.进行8765.1234*'b'的运算:将'b'转换为double型数98.00000,再与8765.1234相乘

d.把之前得到的108.5000000减去8765.1234*'b'的值,就完成了整个表达式的求值


七.变量类型转换原理

1.大的数据往小的数据转换会发生数据丢失,高位被截断(int to char)


九.进制输出

1._itoa(num , str , 2);  //输出进制,第一个参数是要转换的帧整数,第二个参数是转换后输出到的字符串,第三个参数是以多少进制转换。

示例:

void main() {int num = 0;scanf("%d", num);printf("%i", num);<span style="white-space:pre"></span>//%d和%i一样的效果char str[32] = { 0 };_itoa(num, str, 2);printf("%s", str);system("pause");}

十.运算符优先级

++ --优先级高于+-*/ , i+++2等价于i++ 再+2;


十一.算数运算实战

当除号两边都是整形变量时,运算结果只保留整数,当除号两边任意一边有实型变量时,运算结果就为实数


如下:

#include <stdio.h>main(){float div;div = 1 / 2;printf(“%f\n”, div);  //整型}

#include <stdio.h>main(){float div;div = 1. / 2;printf(“%f\n”, div);<span style="white-space:pre"></span>//实型}

十二.算数运算实战

1.除数为正结果为正,除数为负结果为负

#include <stdio.h>main(){printf("%d\n", 3 % 5);//3printf("%d\n", 5 % 3);//2printf("%d\n", 3 % -5);//3printf("%d\n", 5 % -3);//2printf("%d\n", -3 % 5);//-3printf("%d\n", -5 % 3);//-2}

2.交换数据:
#include <stdio.h>void main() {int num = 95;int g = num % 10;int f = num / 10;printf("%d", g * 10 + f);<span style="white-space:pre"></span>//59getchar();}

十四.逗号运算符

逗号运算符,每一条语句都执行,从左向右执行到最后,如果是变量赋值就是最后一个数


十五.三目运算符

printf("%d",3>2>1);  输出0;编译器先比较3>2;成立得1,然后1跟1比较,相同所以返回0


十六.关系运算符

1.判断是否相等最好先相减,然后判断值是否相等

void main() {double b1 = 10.0000000000001;double b2 = 10.0000000000002;printf("%d", b1 == b2);  //输出0,判断是否相等最好把两个数相减,然后结果不为0则不等getchar();}

2.相同字符串常量,存储同一个地址,但如果是数组存储相同字符串则地址不相同

void main() {"吴志刚" == "吴志刚" ? printf("相等") : printf("不等");<span style="white-space:pre"></span>//输出相等char *p1 = "习近平";char *p2 = "习近平";printf("%p%p", p1, p2);system("pause");<span style="white-space:pre"></span>//输出地址相同}

十七.逻辑运算符

1.运算的优先级:!-> 算术运算符  ->关系运算符 ->&&  -> ||  ->赋值运算符





0 0
原创粉丝点击