受朋友委托,帮他发CSDN上来,原创,转载请留下原文地址,谢谢!
说点废话 ,最近有点感冒,感觉有点累,所以写的有点少,大家别介意哦。
基本数据类型
先来看个程序吧 。
- #include<stdio.h>
-
- int main(){
- float salary = 0.0;
- printf("Name :Cucumber\n");
- printf(" Age :22\n");
- printf(" Sex :Boy\n");
- printf("Please input your expected salary:\n");
- scanf("%f",&salary);
- printf("Salary:%g\n",salary);
- return 0;
-
- }
-
复制代码
这个程序我们用到了变量的类型:
float
下面就说说三种基本数据类型
<1> char
字符型:
ASC
码表
这里我只是截图了一部分 , 我会把常用字符
ASCII
字符代码对照表传上去或者大家就去百度看看吧。
代码说明一下吧 :
- /*
-
- cahr变量的使用
-
- */
- #include<stdio.h>
-
- int main(){
- char ch1 = 'c';
- char ch2 = 99;
- char ch3 = '3';
- printf("ch1 = %c ch2 = %c ch3 = %c\n",ch1,ch2,ch3);
- return 0;
- }
-
复制代码
看看程序运行结果吧、
观察上面运行的结果,发现‘
c
’和整数
99
打印的结果是一样的 ,其实本质上一个字符在内存里面占用了一个字节的存储空间,在这个字节里面,存放的就是字符对应的
ASCII
的整数值,每次使用的时候,就根据码表翻译成为对应的字符
说明一下字节吧 。
字节:内存本质上就是一些容器的结合,这些容器大小都是以字节来衡量的,而一个字节反应在二进制上就是八位二进制数字:
0000 0000 --- 1111 1111
1024
字节
= 1kb
1023kb = 1M
1024M = 1G
1024G = 1T
... ...
下面我们就用
sizeof(
注意:
sizeof
是
C
语言的一个关键字不是函数
)
来测量一下
char
类型在内存中所占的字节
- #include<stdio.h>
-
- int main(){
- char c;
- printf("sizeof(c) = %d\n",sizeof(c));
- printf("sizeof(char) = %d\n",sizeof(char));
- return 0;
- }
-
复制代码
看看运行结果
通过上面的例子那么我们就顺便看看
int/short/lon
所占的内存
- #include<stdio.h>
-
- int main(){
- char c;
- printf("sizeof(int) = %d\n",sizeof(int));
- printf("sizeof(short) = %d\n",sizeof(short));
- printf("sizeof(long) = %d\n", sizeof(long));
- return 0;
- }
-
复制代码
其中
short
:短整型
int
:基本整形
long
:长整形
C
语言中的关键字
unsigned
可以修饰这些整形,使其成为无符号整形
整形在内存中的存储是按照补码的形式存储的。
补码:整数的补码和原码相同,负数的补码就是对其绝对值的二进制形式按位取反,然后整数个数值加一。在有符号的整数的二进制形式中:最高位的二进制代表符号位,
1
代表负数,
0
代表整数
如:短整数
9
在内存中的存储是
0000 0000 0000 1001
短整数
-1
在内存中
1111 1111 1111 1111
<3>
浮点数,使用关键字
float
单精度浮点数
double
双精度浮点数
进制的转换:关于进制的转换就不说了,大家上网找点资料看看吧 。
运算符
算数运算符
算数运算符包括
C
语言在内的许多编程语言都广泛使用的一种运算符,这类运算符包括:
+ - * / %(
取余
)
1.运算符
/
可能产生意外的结果:当两个操作数都是整数的时候,运算符
/
会丢失分数部分”截取”结果
2.%
要求操作数都为整数,如果其中一个不是整肃,编译器将无法通过
3.0
不能做除数,不能对
0
进行取余运算
4.两个整数相除,取结果的整数部分
如:我们对一个
2
位的整数逆序打印
- #include<stdio.h>
-
- int main(){
- int num = 0;
- int a = 0;
- int b = 0;
- printf("Please enter a two bit integer:\n");
- scanf("%d",&num);
- a = num % 10;
- b = num / 10;
- printf("%d\n",a*10+b);
- return 0;
- }
-
-
复制代码
赋值运算符
一般的运算符不会改变操作数的值,而
C
语言提供
=
运算符可以用于此摸底。另外,赋值运算符还有右结合性
左值:大多数的
C
语言运算符允许它的操作数书变量,常量或者包含其它运算符的表达式,然而,赋值运算符要求它的操作数必须左值。左值表示存储在计算机内存中的对象,而不是常量或者计算结果,变量是左值
复合赋值
利用变量原来的数值经过一系列的计算之后再赋值给这个变量的操作叫做复合赋值
自增
/
自减运算
自增
/
自减运算符是最常用于变量的两种运算符。
- #include<stdio.h>
-
- int main(){
- int i = 2;
- printf("i = %d\n",i++);
- printf("i = %d\n",i);
- printf("---------------\n");
- printf("i = %d\n",i--);
- printf("i = %d\n",i);
- return 0;
- }
-
复制代码
注:
1.同一个表达式中,不要对同一个变量进行多细自增
/
自减运算
2.++/--
可以用于浮点数的计算,但是很少见
关系运算符
C
语言中的关系运算符和数学上的
< > <=
和
>=
运算符相对应,只是用在
C
语言表达式时产生的结果是
0(
假
)
或者
1(
真
)
< <= > >=
- #include<stdio.h>
-
- int main(){
- printf("7 > 5 Result:%d\n",7 > 5);
- printf("5 > 7 Result:%d\n",5 > 7);
- return 0;
- }
-
复制代码
注意:
1.关系运算符的优先级低于算数运算符
2.我们在数学上可以这样表达:
i <j < k
在
C
语言中这样也是合法的,但是可能不是你所期望的含义,因为
<
都是左结合的
.
首发地址:http://www.bcwhy.com/thread-18594-1-1.html