内存如何存放数据:
计算机执行程序时,组成程序的指令和程序所操作的数据都必须存放在某个地方
——**内存,也成为主存(main memory)或随机访问存储器(Random Access Memory,RAM)**
变量:计算机中一块特定的内存空间,由一个或多个连续的字节组成
变量命名规则:
首字母只能是字母或下划线
只能由字母、数字和下划线3中字符组成
不能使用关键字(32个保留字,如下图,也可查看 [http://www.jb51.net/article/39926.htm](http://www.jb51.net/article/39926.htm))


C语言中的基本数据类型(六种)
按照不同的分类方式可以分为两类六种(整数类型和字符类型)或者三类六种(整型、浮点型和字符型)
编写代码来试验每种类型占多少字节:
#include <stdio.h>
main() {
printf("short类型占%d个字节\n",sizeof(short));
printf("int类型占%d个字节\n",sizeof(int));
printf("long类型占%d个字节\n",sizeof(long));
printf("float类型占%d个字节\n",sizeof(float));
printf("double类型占%d个字节\n",sizeof(double));
printf("char类型占%d个字节\n",sizeof(char));
system("pause");
}
其中:
%d为占位符,表示有符号的十进制整数。此种符号还有很多,如:
%a,%A 读入一个浮点值(仅C99有效)
%c 读入一个字符
%d 读入十进制整数
%i 读入十进制,八进制,十六进制整数
%o 读入八进制整数
%x,%X 读入十六进制整数
%s 读入一个字符串,遇空格、制表符或换行符结束。 但是C没有String,C中表示字符串使用字符数组表示的
%f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。 %f会保留六位小数,可以写成类似如%.2f,代表显示时保留两位小数
%p 读入一个指针
%u 读入一个无符号十进制整数
%n 至此已读入值的等价字符数
%[] 扫描字符集合
%% 读%符号
system("pause"); 是调用系统的暂停命令,按任意键后,可以继续执行后续的语句
结果:

在Java中:
byte类型占1个字节
short类型占2个字节
int类型占4个字节
long类型占8个字节
float类型占4个字节
double类型占8个字节
char类型占2个字节
boolean类型占1个字节
对比来看,C比Java少了byte类型和boolean类型,long类型和char类型不同,其他相同。

练习:

#include <stdio.h>
void main()
{
double attach = 57.88;
double attachAdd = 4.5;
int attachRange = 172;
printf("伤害:%.2f(+%.1lf)\t攻击距离%d\n",attach,attachAdd,attachRange);
}
常用ASCII码表:
记忆:大小写字母中间相差一个空格

练习:大小写转换
#include <stdio.h>
void main()
{
char a = 'a';
printf("a的大写字母:%c\n",a-' ');
printf("a的大写字母:%c\n",a-32);
}

容易出的问题:char应写单引号而不是双引号
转义序列小结

scanf函数
C函数库包含了多个输入函数,scanf是最通用的一个
读取基本类型的值时,变量前要加&(代表取地址)
练习:

#include <stdio.h>
#include <stdlib.h>
int main()
{ //公式:武器实际最大伤害=武器最大伤害*(玩家力量+100)/100
//现武器最大伤害为256
double factShangHai; //武器实际最大伤害
int strength; //玩家力量
double maxShangHai = 256; //武器最大伤害
printf("请输入玩家力量:\n");
scanf("%d",&strength);
factShangHai = maxShangHai * (strength+100)/100;
printf("实际伤害:%.2f\n",factShangHai);
return 0;
}

取模运算:结果与第一个数的符号相同
如:
-5 % 3 = -2
5 % -3 = 2
随机函数
srand()就是给rand()提供种子seed。种子没有变化,每次调用rand()生成的伪随机数序列都是一样的。
srand(time(NULL)); //使用时间作为种子,产生不一样的数字
printf( " %6d/n", rand());
随机函数可以配合取模来取出一定范围的随机数
网友评论