新浪博客

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);

我的更多文章

下载客户端阅读体验更佳

APP专享