第一个程序
#include<stdio.h> //预处理器 <>里的都为头文件
int main()
{ //{}为函数体
printf("Hello Word.\n"); //printf为<stdio.h>里的库函数
return 0; //代表程序正常结束
}
函数的构成是什么?
函数名+函数的返回值
例:void Fun()
{
............;
}
如何把.cpp文件变成.exe可执行程序?
.c/.cpp(源代码)--预编译-->.i--编译-->.s(汇编指令)--汇编-->.obj(windows)/.o(linux)--链接-->.exe(可执行程序)
C 语言里的六种基本数据类型short、int、long、char、float、double 。
• signed(有符号)
• unsigned(无符号)
• long(长型符)
• short(短型符)
1、整形类型:int ,short int,long int,long long,char,bool
2、浮点类型:float ,double
形式参数和实际参数:
形式参数(形参):定义函数名和函数体时需要用的参数,目的是用来接收调用该函数时传递的参数。
实际参数(实参):传递给被调用函数的值。
无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。 形参变量在未出现函数调用时,并不占用内存,只在调用时才占用。调用结束后,将释放内存。
#include<stdio.h>
void Swap(int a,int b)//交换函数
{
int tmp = a;
a = b;
b = tmp;
}
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语言要求函数的实参要有确定的值,在函数调用时给形参分配相应的内存单元,同时将实参的“值”拷贝给形参,实现数据从实参到形参的按值传递。
char与unsigned char
#include<stdio.h>
int main()
{
char ch1 = 255;
char ch2 = -1;
char ch3 = 'a';
unsigned char ch4 = 255;
printf("%d\n",ch1);
printf("%d\n",ch2);
printf("%d\n",ch3);
printf("%c\n",ch3);
printf("%d\n",ch4);
}
输出上述值为 -1 -1 97 a 255
char的取值范围为-128~127 unsigned char的取值范围为0~255
浮点数的储存方式:
首先float在内存中占四个字节(32位)
在计算机存储中,首先要将数更改为二进制的科学计数法表示,8.25,用二进制的科学计数法表示为:1.0001*
0表示正,指数位为:3+127=130 ,位数部分为0001,故8.25的存储方式如下所示:
0 1000 0010 00010000000000000000000 (只能精确到小数点后六位)
指数位置的储存由127为分界点,储存时指数与127相加,储存在指数位,float指数的范围是-127~128。
大端与小端
大端:低地址放高数据,低位字节排放在内存的高地址端。:手机,网络
小端:低地址放低数据,高位字节排放在内存的高地址端。: PC Inter
举一个例子吧,比如数字0x12 34 56 78在内存中的表示形式为:
(1)大端模式:
低地址 ————————> 高地址
0x12 | 0x34 | 0x56 | 0x78
(2)小端模式:
低地址 ————————-> 高地址
0x78 | 0x56 | 0x34 | 0x12