暑假C语言心得暑假C语言心得
算术运算符的结合方向为“自左向右” 又称为 “左结合性”即运算对象先与左面的运算符结合,a-b+c b先与减号结合,执行a-b的运算,再执行加c的运算。
如i+++j 在C编译系统在处理时尽可能多的(自左而右)将若干个字符组成一个运算符(在处理标识符、关键字时也按同一原则处理),如i+++j,将解释为(i++)+j,而不是i+(++j)。
字符数据的转换
高 double float long unsigned 低 int char,short 类型转换
1. 将浮点型赋给整型变量时,舍弃...
暑假C语言心得
算术运算符的结合方向为“自左向右” 又称为 “左结合性”即运算对象先与左面的运算符结合,a-b+c b先与减号结合,执行a-b的运算,再执行加c的运算。
如i+++j 在C编译系统在处理时尽可能多的(自左而右)将若干个字符组成一个运算符(在处理标识符、关键字时也按同一原则处理),如i+++j,将解释为(i++)+j,而不是i+(++j)。
字符数据的转换
高 double float long unsigned 低 int char,short 类型转换
1. 将浮点型赋给整型变量时,舍弃浮点数的小数部分。
2. 将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中,如将
23赋给float变量f,则执行f=23,先将23转换成23.00000,再存储在f中。如将23
赋给double型变量d,则执行d=23,先将23补足有效位数字为23.00000000000000,
然后以双精度浮点数形式存储到变量d中。
3. 将一个double赋给float变量时,截取其前7位有效数字,存放到float变量的存储单元,
4个字节。将一个float型数据赋给double时,数值不变,有效位数扩展到16位,在内
存中以8个字节存储。
4. 字符型数据赋给整型变量
? 如果所用系统将字符处理为无符号的字符类型,或程序已将字符变量定义为unsigned char 型,则将字符的8位放到整型的低8位,高8位补零。
? 如果所用系统将字符处理为带符号的,若字符的最高位为0,则整型变量高8位补0;若字符最高位为1,则高8位补1。这样做的目的是,是数值保持不变 5. 将一个int,short、long型数据赋给一个char时,只将其8位原封不动的送到char型变
量。
6. 将带符号的整型数据() 详见课本62页
复合的的赋值运算符
凡是二目运算符,都可以与赋值运算符一起组合成复合赋值符。在C语言中可以使用十种复合运算符。+=,-=,*=,/=,%=,<<=,>>=,&=,?=,|=后五位是有关位运算的。
赋值表达式
对赋值表达式的求解过程是:先求赋值运算符右侧的表达式的值,然后覆盖赋值运算符左侧
1
的变量。
格式输入与输出
S格式符用来输出一个字符串。%S printf("%s","CHINA"); 1) %ms,输出地字符占m列,如字符的本身长度大于m则突破m的限制,将字符串全部输出;若串长小于m,则左补空格。
2) %-ms,如果串长小于m,则在m列范围内字符向左靠,右补空格
3) %m.Ns输出占M列,但只取字符串左端n个字符,这n个字符输出在m列的右侧,做不空格。
4) %-m.Ns其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如n>m,则m自动取n值,保证n个字符正常输出。
F格式符
? %f 不指定字段的宽度,由系统自动指定,使整数部分全部输出,并输出6位
小数,但是在输出地数字中并非全部数字都是有效数字。单精度实数的有效位数一般为
7位。双精度数的有效数字一般为16位,给出6位小数。
? %m.Nf指定输出地数据共占m 列,其中n位小数,如果数值长度小于m,则左
端补空格。
? %-m.Nf与上面的意义基本相同,只是输出地数值向左端靠,右端补空格。 E格式符,以指数形式输出实数
1. %e,给出数字部分的小数位数为6位,指数部分占5位(如e+002,其中“e”占1位,
指数符号占1位,指数占三位)数值按规范化形式输出(小数点前必须有而且只有1
位非零数字。)
2. %m.Ne,n指输出地数据的小数部分的小数位数,
详见课本80页
Scanf(“%2d %*3d %2d”,&a,&b);如果输入12-345-67 %*3d表示读入3位整数不赋给任
何变量,跳过345 只有12-67 详见课本84页
算术运算符 高 ~非 高 算术运算符 关系运算符 关系运算符 &&和|| 赋值运算符 低 赋值运算符 低
函数参数和函数的值(形参与实参)
形式参数:在定义函数时,函数名后面括号中的变量名称就是的。简称“形参”
Int max(int x,int y)
{
Int z ;
Z=x>y?x:y;
Return (z) ;
}括号中x,y就是形参。return(z)的作用 2
是将z的值作为函数值带回到主函数中。
实际参数:在主调函数中调用一个函数时,函数后面括号中的参数(可以是一个表达式)。简称“实参”。详见课本159页
关于形参与实参的说明: 实参的个数应当与形参的个数相同,类型匹配
1. 在定义函数中指定的形参,在未出现函数调用时,它们并不占用内存中的存储
单元。只有在发生函数调用时,函数中的形参才被分配内存单元。在调用结束后,形参
所占的内存单元也被释放。
2. 在被定义的函数中,必须指定形参的类型。
3. 形参与实参的类型应相同或赋值兼容。
4. 在调用时,将实参的值赋给形参。
5. 在C语言中,实参向形参的数据传递时“值传递”,单向传递,只由实参传给
形参而不能由形参传回来给实参,在内存中,实参单元与形参单元式不同的单元。
6. 在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结
束后,形参单元被释放,实参但那元仍保留原值。
函数的返回值:通过函数调用能得到一个确定的值,这就是函数的返回值详见课本160页
函数的调用
详见课本163页
变量的存储类别(详见课本190页)
在C语言中,每一个变量和函数有两个属性:数据类型,数据的存储类别:auto 自动
static变量:静态局部变量
register变量:寄存器的
extern变量:外部的
int f (int a)
{
auto int b=0;
static int c=3; file1.c file2.c b=b+1; static int A; extern int A; c=c+1; void main () void main ()
return(a+b+c); { {
}c的初值为3,a的初值为2,第一次调用结束时 „„ „„
b=1,c=4由于c是静态局部变量在调用结束后,它并} }
不释放,仍保留c=4 在文件一中定义了一个全局变量A,但它用
static 声明,就只能用于本文件中,在file2中用
了"extern int A"但file2文件中无法使用file1中
的全局变量。
宏定义 详见课本204页
#define PI 3.1415926 以一个简单的名字代替一个长的字符串,因此把这个标识符(名字)称为 “宏名” 在预编译是将宏名换成字符串的过程叫做“宏展开”
3
#define 是宏定义命令。 宏定义不是C语句,不必在行末加分号。
指针
指针:一个变量的地址称为指针。 指针就是一个地址,而指针变量就是存放地址的变量。 指针变量:专门用来存放另一地址(指针)的变量。 指针变量的值就是地址。 point_i=&i 将变量i的地址存放到指针变量point_1中,因此point_1就指向了变量i. int *point_1 定义了point_1为指针变量。
point_1=&a;,&*point_1 按自右而左的方向结 合,*point_1就是a,在执行&运算,因此原式=&a,通过函数调用得到n个要改变的值 就是变量a的地址。 1. 在主调用函数中设 n个变量,用n个指针 *&a的含义就是a。 变量指向它们 2. 然后将指针变量做实参,将这n个变量的 地址传给所调用的函数的形参 3. 通过形参指针变量,改变该n个变量的值 4. 主调函数中就可以使用这些改变了值的变 量 5. 不能企图通过改变指针形参的值而使指针 实参的值改变
指向函数的指针
int (*p)(int,int):表示定义一个指向函数的指针变量p,它不是固定指向哪一个函数的,只是定义了这样一个类型的变量,它是专门用来存放函数的入口地址的。在程序中把哪一个函数(该函数的值应是整型的,且有两个整型参数)的地址赋给它,它就指向哪一个函数,在一个程序中,一个指针变量可以先后指向同类型的不同函数 详见课本262页
4
本文档为【暑假C语言心得】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。