C语言笔记003-变量 运算符 表达式
2016-04-05 15:01阅读:
1.基本数据类型
整型 :处理整型数据用的。
C89
有符号 短整型 整型
长整型(负)
无符号 短整型 整型
长整型(非负)
在64位计算机系统中Mac OS
955888 0200 0054
33379
类型
最小值
最大值
short int
-32768
32767
unsigned short int 0
65535
int
-2147483648 2147483647
unsigned int
0
4294967295
long int
-9223372036854775808
9223372036854775807
unsigned long int 0
18446744073709551615
计算过程:
short int 最小值 -2^15 ~2^15-1
unsigned short int 最小值 0 ~ 2^16-1
int 最小值 -2^31 ~ 2^31-1
unsigned int 最小值 0 ~2^32-1
long int 最小值 -2^63 ~ 2^63-1
unsigned long 最小值 0 ~ 2^64-1
sizeof关键字 用来计算所占内存字节数
sizeof(shrot int)---->2Byte---->2*8 = 16bit
sizeof(int)---->4Byte---->4*8 = 32bit
sizeof(long int)---->8Byte---->8*8 = 64bit
补充:32位 16位系统中所占内存情况
32位
char 1字节
short 2字节
int 4字节
long 4字节
long long 8个字节
#include
int main(int argc, const char *
argv[])
{
//1.复习变量 注意 使用变量前必须要先声明
//声明变量 类型标识符 变量名; 不能有中文
//短整型 short int 整型 int 长整型 long
int
//2.声明变量并初始化(赋初始值)
int x = 100;
//3.输出10进制整型 %d
printf('输出10进制整型:%d',x);
//4.输出8进制整型 %o 以0开头 0123,025;
printf('输出8进制整型:%o',x);
printf('输出8进制整型:%#o',x);
//5.输出16进制整型 %x 以0x或0X
printf('输出16进制整型:%x',x);
printf('输出16进制整型:%#x',x);
//6.短整型 短整型 %d或%hd
short int si =
200;
printf('输出short int:%d',si);
printf('输出short int:%hd',si);
//7长整型 输出长整型 %ld
long int li =
300;
printf('输出long int:%ld',li);
//8 C99标准中的long long int
long long int lli =
400;
printf('输出long long int:%lld',lli);
return 0;
}
16位
char 1字节
short 2字节
int 2字节
long 4字节
#include
int main(int argc, const char *
argv[])
{
//1.计算short int所占内存字节数
printf('short int所占内存字节数:%lu',sizeof(short));
printf('unsigned short所占内存字节数:%lu',sizeof(unsigned
short));
//2.计算int uint 所占内存字节数
printf('int 所占内存字节数:%lu',
sizeof(int));
printf('unsigned int
所占内存字节数:%lu',sizeof(unsigned int));
//3.计算long ulong 所占内存字节数
printf('long
所占内存字节数:%lu',sizeof(long));
printf('unsigned long
所占内存字节数:%lu',sizeof(unsigned long));
return 0;
}
思考题:
short 2Byte
16bit
xxxx xxxx xxxx
xxxx
0111 1111 1111 1111 = 0x7FFF =
32767
1000 0000 0000 0000 =
0x8000=-32768
unsigned short 2Byte 16bit
xxxx xxxx xxxx
xxxx
#include
int main(int argc, const char *
argv[])
{
//1.给变量 初始化
int a = 0;
char b = 0;
float c = 0;
double d = 0;
//2.给变量赋值
a = 50;
b = 'A';
c = 3.14f;
d = 3.14159265857;
//3.表达式的值赋值给一个变量
a = 100 + 50;
b = 97 - 32;
//4.结合sizeof使用
int li = sizeof(int);
int lc = sizeof(char);
//5.a+=b <==> a = a + b;
int i = 0;
i += 1;
int j = 0;
j = j + 1;
printf('i = %d j = %d',i,j);
return 0;
}
1.变量
在程序运行过程中其值可以被改变,也就是说这个变量所在的内存地址中存储的数据(2进制数据)可以发生变化。
2.使用变量前必须要声明,且变量名不能重复,还必须是一个合法的标识符。
3.使用变量的时候要初始化。
int x = 0;
作用:给变量赋一个初始值
0.当然根据自己的需要赋一个有具体数值的值 100。目的是防止变量在程序执行过程中出现垃圾值。
4.编码规范 (C命名规范)
1.驼峰命名
getName,isEnd;
2.宏定义
#define
MUSIC '/Users/.…..'
3.变量 一般都小写
int a;
4.结构体 名称大写
struct
Student
{
};
5.公司的前缀
Tarena(Ta)
6.使用空格让你的代码更清晰 a =
100;
7.使用空行让你的代码结构更清晰,函数和函数之间要空一行。
C99
long long int
实型 :处理浮点类型的数据的。
C89
单精度浮点:表示范围和有效位数少。
float 使用%f 或 .2f
6~7位
float 内存所占字节数 4Bytes =
32bits
xxxx xxxx xxxx xxxx xxxx xxxx xxxx
xxxx
x 最高位,第31位是符号位 0正 1负
第23位 ~第30位 这8bits 叫做指数位。
第0位 ~第22位 这些位
是有效位数。
双精度浮点:表示范围和有效位数多。
double 使用%lf 或.nlf 所占 内存字节数
8 Bytes = 64bits 有效位数 7~13 实际上
可以比这个更宽泛15 ~ 16位。
double的表示范围 -1.7*10^308
~1.7*10^308
C99
长双精度浮点:表示的范围更宽泛。
long double
#include
int main(int argc, const char *
argv[])
{
//1.声明一个单精度浮点类型的变量并赋值3.1415
float pi = 3.1415f;
//2.输出浮点类型的数据
printf('pi = %f',pi);
//%f 打印出来的数据 是6位有效位数
3.141500
//3.变量可以通过 =
赋值运算符,赋一个新的值
pi = 3.1415926f;
//4.输出新的pi的值 从第7位开始四舍五入
printf('pi = %f',pi);
//5.输出指定位数的小数 保留小数点后2位。
printf('pi = %.2f',pi);
//6.双精度浮点类型 double 输出%lf %e
%E
double du = 128.45;
printf('du = %lf',du);//默认6
//小数点后17位,最多到16位
du = 3.14159265857123456;
printf('du = %.16lf',du);
printf('du = %.17lf',du);
return 0;
}
字符型:用来表示计算机中得字符数据类型。可见字符 a A ,
8,(,];都是可见字符。control 键 enter回车键等 控制字符。
有英文字符,有数字字符,中文字符。引文字符(含标点符号)以及数字字符都占一个占位符,中文字符(汉字),标点2个占位符。
字符集 ASCII码,UTF-8,16,32,64很多,GB2300 GB2312
BIG5等。
1.字符类型常量
'a'~'z' 'A'~'Z' '0'~'9' ',' '.''['
')' '*' '&';
转义字符
换行 \r回车 \b退格键
\t 水平制表符 \v垂直制表符
补充:
'\033[30m XXXXX'
31m
注意:只要一提到是字符常量 'a','A','9';字符串有所区别
'字符串常量';
2.字符类型变量 char
---->1Bytes--->8bit
有符号的字符类型 char
表示的范围 -2^7 ~ 2^7-1 -128 ~
127
无符号的字符类型 unsigned char
无符号表示的范围 0 ~ 255 (共
256字符)
注意:C语言中
字符类型其实就是一个特殊的整型,存储的是字符的ASCII码。
3.ASCII码
小写 'a' ~ 'z'
97
大写 'A' ~ 'Z'
65 ====》65 + 32 = 97
数字 '0' ~ '9'
48
4.字符类型输入和输出
printf('%c');
scanf('%c',&变量名);
#include
int main(int argc, const char *
argv[])
{
//1.模拟QQ登陆 1.QQ号 2.密码(数字)
int no = 0;//账号
int password = 0;
//UI界面
printf('=========================');
printf(' QQ2014版');
printf('QQ账号:');
//2.输入账号 账号是个整数
scanf('%d',&no);
printf('QQ密码:');
//3.输入密码 密码理解状态下纯数字 6位
scanf('%d',&password);
printf('=========================');
//4.输出数据
printf('QQ号:%d 密码:%d',no,password);
//-----------------------------------
//输入 输入浮点类型的数据
//输入一个上网的时长 2.5 小时
double hour = 0;
//提示用户输入上网时长
scanf('%lf',&hour);
//输出一下上网的时长
printf('上网时长:%.2lf',hour);