一.基础回顾。
#include <>
void main()
printf("hello world!");
c语言的注释:
1. 块注释:关键符号:/*斜杠+*,符号成对出现,不能嵌套
2.行注释:关键符号//
只能注释掉一行**。
/ 这是行注释。
语言程序的基本组成单位:函数。
2.一个c语言程序中必须有,而且只能有1个main函数。
main函数是程序执行的入口地址,当程序开始运行的时候,首先从main开始。
语言的函数定义的基本格式:
返回值类型函数名(参数列表)
语言的语句:
必须由分号结束。
二.常量和变量。
#include <>
void main()
int a = 6;
int b;
a = 10;
主题:常量和变量。
1.常量:出现在程序中的,在程序运行过程中不能改变的量。
int a = 5; 数据5就是常量。
2.变量:在程序运行过程中,能改变的量。
变量的实质:是存储器中的一块空间(容器)
3.常量的定义(声明)
1)符号常量的定义 #define max 5
2)常规的常量就是出现在语句中的一个数据,比如:int a = 5; 语句中的5就是常量。
4.变量的定义。
变量定义的格式:
数据类型变量名;
变量在定义的同时可以初始化;
1)变量在使用之前必须定义(一般情况下,习惯放在函数的开头或者文件的开头集中定义)
2) 变量必须有名字,变量名:标示变量占用的是存储器中的那块空间。
变量名其实就是变量所占的存储单元的地址。
比如:int a = 5; 变量名:a
3)变量名的命名规则:
只能由字母数字下划线组成(在一些特殊的编译环境中,可能还有个别合法的符号),不能用数字开头。
变量名区分大小写 int student;int student;student和student是两个不同的变量。
三.数据类型。
#include <>
void main()
int a = 6;
float f1 = 2.3;
double f2 = 2.6;
char c1 = 6',c2 = b';
主题:基本数据类型。
1.常用的数据类型。
1) 存放数值型数据。
数值型数据:数学上的数据,可以比较大小。
分为整数和浮点数(小数)
** 整数的数据类型。
int long
short三种不同的整型类型所占的存储单元的个数不同,整型数据的变量存储数据的时候,注意:溢出、
产生溢出的原因:变量所占的存储单元空间有限,能表示的数据的范围也是有限的。超出了范围就溢出。
** 小数的数据类型:浮点数。
double
float字符型数据:就是一些符号,本身没有大小,学号里面的数字20140202;20140203;
字符型的常量:用单引号。
标准的c语言中,字符型数据只能是1个符号。
'ab','abcd'都是错误的。
char例如:
char c1 = 6',c2 = b'; 字符型变量c1,存储了一个字符型的常量'6',这里的6只表示符号6,没有数值概念。
四:数据编码。
不同类型的数据(基础类型)在内存中怎么存放。
#include <>
void main()
int a = 6,k=-6,l = 20;
char c1,c2;
c1 = 0';
c2 = a';
printf("%d, %x",a,a);
printf("%d, %x",k,k);
printf("%c, %d",c1,c1);
printf("%c, %d",c2,c2);
printf("%c, %d",c2+1,c2+1);
printf("hello world");
printf("hello it's a \"hahaha");单引号在这里放在了双引号里面,不用再转义了,*
主题:基本数据类型的数据编码。
1. 整数。
整数在内存中的编码是以补码的形式存储的。
整数的编码分为:原码,反码,补码。
所有的编码,都分为符号位和数值位。
最高位都是符号位,正数用0表示,负数用1表示。
数值位针对不同的编码有不同的表示。
原码:用数值的二进制码表示。
比如,数据6, 二进制码是:110
在字长是8位的机器中(int型数据占8位,1位符号位,7位数值位)
6的原码编码:0000 0110;
6的原码编码:1000 0110;
反码:是一种过渡编码,是为了求补码。
正数的反码:跟原码一样。
负数的反码:符号位为1,数值位取反。
6的反码编码:0000 0110;
6的反码编码:1111 1001;
补码:正数的补码:跟原码一样。
负数的补码:符号位为1,数值位反码+1(原码取反+1)
6的补码编码:0000 0110
6的补码编码:1111 1010 (十六进制显示:fa)
字长增加的情况,大家自己分析。
无符号数:unsigned int
存储空间的所有的位数都用来作为数值位,没有符号位,只能存正数。
衍生的问题:
变量存储数据的范围(溢出)
2个字节的int型变量可以存储的数据的范围是:
2个字节的unsigned int 可以存储的数据的范围:
2. 浮点数。
把内存空间划分为2块。
一块存放底数,一块存放指数。
数据123.5689转换成,0.1235689*10^3
底数1235689和指数3被分别存放。
底数和指数的存放都是按照整数的编码来存放的。
使用浮点数做运算的时候注意不要让两个相差很大的数据做运算,会因为精度原因丢失数据。
3. 字符数据。
字符数据在内存中用专用编码存放:ascii码。
常用的特殊字符的ascii码记住,比如字符0, 空格,a, a
ascii码也是些整数。
在特殊情况下,char型数据和int可以互通。
字符数据可以在一定范围内进行一些简单的加减运算,比如,'a'+1 ,其实是97+1 = 98,代表的是字符b
转义字符:把一些符号的含义进行转换。
转义符号:\,表示出现在\后面的符号,有了新的意义,不再是原来的含义。
比如::回车换行。
这个符号中,转义符:\后面的n,被转义了,不再是原来的符号n,而是表示回车换行。
这个符号中,'原来的含义:就是字符数据的界定符,转义后,它不再表示界定符,而是就是单引号符号本身。
这个符号中,"原来的含义:就是字符串数据的界定符,转义后,它不再表示界定符,而是就是双引号符号本身。
下列语句正确的是:第三个,第四个。
char c;
c = a"; c = ab'; c = c', c = n', c = n"
c = b'+1; c = a"+1;
四.运算符。
#include <>
main()
int a,b,c,d,e;
float f1=4.6,f2=2.3,f3,f4,f5,f6=4.8;
a=10;b=5;
f3 = f1+f2;
printf("%f",f3);
/* 标准的c语言中,/只能用于整型数据。
vc中进行了运算符的重载*/
f4 = f1/f2;
printf("%f",f4);
% 只能用于整型数据,运算符的左边和右边都不能出现浮点数。
//f5 = f6%f2;
//printf("%f",f5);
c = a+++b++;
printf("a = d;b = d,c = d",a,b,c);
a=10;b=5;
c = a+b++;
printf("a = d;b = d,c = d",a,b,c);
a=10;b=5;
c = a+(+b);
printf("a = d;b = d,c = d",a,b,c);
printf(" d, %d", 5>3, 3>5);
a=5;b = 10;
d = 20;
e = 30;
c =(e=8>5)&&d=a>b);
printf("%d,%d,%d",c,d,e);
a=5;b = 10;
d = 20;
e = 30;
&&运算符链接的两个表达式,如果第一个不成立了,第二个就不会被执行判断和了。
c =(e=8<5)&&d=a printf("%d,%d,%d",c,d,e);
a = 0;
printf("!0 = d",a);
a = 5;
printf("!0 = d",a);
一。运算符和表达式。
1. 算数运算符。
++:变量自增1
--:变量自减1
1) x++ 等价于: x = x+1;
运算符中隐含了赋值操作,赋值操作只能对变量进行赋值。
++运算符只能用于变量,不能出现 5++ 这样的表达式。
--也是一样的。
2) +运算符构成的表达式:
x++ x; 两个表达式功能相同,都是x+1;
3) 当++运算符与其他运算符结合的时候。
y = x++;y=x;x=x+1;
C语言笔记
第一课时。c语言标准格式。include vidomain 以 开头的语句称为预处理指令。include语句不是必须的,但是如果一旦有该语句就必须把它放在文件开始处是standared input output header的缩写standared 标准input 输入output 输出header...
C语言笔记
c语言算法和数据类型。整型。基本类型 字符型注释 基本类型的特点是其不可实型 单精度型以再分解为其他类型双精度型数组型。数据结构 构造型 结构体型共用体型指针型空类型。一 常量。define 语句不以分号结尾,它可以放在源 的任何位置。不过在定义常量时,只有在它定义后的源 中才有效。是一个修饰符,在...
c语言笔记
1.if中别忘了 而不是 2.写完程序别忘了检查前后大括号 小括号是否完全照应。3.遇到几分之几的分数可以方程两边同时乘以一个数来消去分母。4.写指针题时看准指针对应的是行还是列。例 int a 4 3 int p a 0 列指针。int ptr 3 a 行指针。5.考虑好哪些量会随着循环不断改变。...