- 预处理指令。#include<stdio.h>(或者#define)。C编译系统在对源程序编译之前,先由一个预编译器进行处理,将stdioo.h头文件的内容读出来,放在#include指令行。stdio.h:文件里面包含了很多的函数供程序员直接使用,例如printf()和scanf(),#开头的,都称为预处理指令。
- 程序总是从main()函数开始的,main()函数是程序的入口。一个程序中只有一个main()函数。一个函数包括两个部分:函数首部和函数体。(1).函数首部依次包括:函数类型 函数名();()之中可写成(函数参数类型 函数参数名)。函数的参数被称之为形参。而在主函数中向函数传递的参数成为实参。(2).函数体,即函数首部下面花括号中的内容。return语句表示,将来需要返回的值。
- 程序中对计算机的操作是由函数中的C语句完成的,在每个数据声明和语句的最后必须有一个分号。
- 在输入和输出语句中,scanf("%d,%d",&a,&b); printf("%d,%d\n",a,b); “%”表示格式说明的起始符号,常见的格式说明有%d:有符号十进制整数形式;%u:无符号十进制整数;%f:浮点数、十进制记数法;%o:无符号八进制整数;%x:十六进制数字;%c:一个字符;%s:字符串;%e:浮点数、e-记数法;%%:打印一个百分号。
- 字符,用‘’括起来的一个字符;字符串,用“”把若干字符括起来。字符常量储存在计算机存储单元中时,并不是存储字符本身,而是以其代码(一般采用ASCLL代码)存储。如:‘a’的ASCLL代码是97(二进制);‘A’的ASCLL代码是65;‘0’的ASCLL代码是48。
- C语言有两种注释的方式,(1).以//开始的为单行注释;这种注释不能跨行(2).以/* */的为块注释;这种注释可以独占一行,也可以包含多行。块注释不能够嵌套使用。(3).在VS2012中,可以使用快捷键ctrl+k+c进行注释;用ctrl+k+u取消注释。(4).也可以使用#if(或#if 0)注释内容 #endif进行注释。
-
7. #include<stdio.h> void Swap(int c,int d) { int tmp = c; c = d; d = tmp; return; } int main() { int a = 10; int b = 20; printf("%d,%d\n",a,b); Swap(a,b); printf("%d,%d\n",a,b); return 0;//代表程序正常结束 }
在这段程序中,参数a和b称之为实参;而c和d称之为形参。
运行结果:
运行完函数但a和b的值没有改变。这是因为在计算机编译时,会给实参一个存储地址,也会给形参一个存储地址。运行函数只是将形参的值发生改变,而输出的实参的地址没有改变,所以才会出现以上结果。如果想要改变实参的值,就要进行传址。
8.在C语言里基本数据类型有 char,short,int,unsigned int,long int,long long,分别占 1,2,2/4,2/4,4,8个字节,int, unsigned int 和long int 与平台相关,另外还有浮点型数据float和double分别4和8字节。对于char型来说,它只占1个字节,即8位。
所以当到达0111 1111时,再进一位最高位就会变成1,遵循0正1负原则。此时就表示负数。而计算机在存储时,是以补码的形式(正数的补码是本身,负数的补码是取反加一)进行存储。所以,就能够得出char型的取值范围:-128到127。
9.float型的数据占4字节,即32位。如图所示
当存储float a=12.5f;时,12.5转化为二进制是1100.1=》1.1001*2^3,计算机规定指数位与127相加后,所得结果的二进制存储到指数位上,而尾数[因为所有的数都可转变科学记数法的形式(如:1.100*2^2) , 所以小数点以前的都相同 , 就可省略 , 只保存小数点以后的 , 即尾数部分]存储在尾数位,后面加0补位。 为什么是在后面补零???因为小数在后面补零值保持不变.