编程细节笔记
1、浮点数与取模使用时,取模号/的使用,两端至少有一个为浮点数,并且会C语言不会四舍五入
例:9/2=4,1/2=0
2、左对齐与右对齐:%nd表示右对齐%-nd表示左对齐
3、类型类型字符用以表示输出数据的类型,其格式符和意义下表所示:
4、标志字符为-、+、#、空格四种,其意义下表所示:
5、getchar(); //因为scanf输入,缓存区会有换行符'\n',这时读取字符时,会先读取换行符'\n',这时getchar()把输入时的换行符'\n'处理掉
6、long int sum=0; //数字很大的时候会溢出,所以把int改为长整型long int 保证不会溢出
输出时采用:printf("%ld",sum)
7、//switch()后不可以加“;” //case与数值1之间要有空格 //do while()后要加“;”
8、ctype.h函数库的使用
9、指针:
(1)指向一维数组的指针:
int a[3]={1,2,3},*p=&a; //变量a就是一个地址
*a~*(a)~*p~*(p)=1 //表示数组第一个元素地址取值
*(a+i)~*(a+2)~*(p+2)=3 //表示数组第三个元素地址取值,i小于3
(2)指向二维数组的指针:
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)=a,*q=a;
a+i~a[i]~*(a+i)~&a[i][0]~p+i~p[i]~*(p+i) //表示数组中某一行数组的首地址
*(p[1]+2)~*(*(p+1)+2)~p[1][2]~*(a[1]+2)~*(*(a+1)+2)~a[1][2]
//(p是指向数组的指针,可以采用下标索引)表示二维数组第2行3列元素值7
*(q+6) //表示二维数组a地址赋值给q(q只是普通的指针,不可以采用下标索引)
(3)指针变量的运算
<1>加减算术运算
指针变量的加减运算只能对数组指针变量进行,对其他指针变量作加减运算是毫无意义的;
指针变量加或减一个整数n的意义是把指针指向的当前位置(指向某数组元素)向前或向后移动n个位置
<2>两个指针的运算:只有指向同一数组的两个指针变量之间才能进行运算,否则运算毫无意义
两指针变量相减:两指针变量相减所得之差是两个指针所指数组元素之间相差的元素个数;
实际上是两个指针值(地址)相减只之差再除以该数组元素的长度(字节数);
两指针的关系运算:p1==p2:表示p1和p2指向同一数组元素;p1>p2:表示p1处于高地址位置;p1<p2:表示p1处于低地址位置
#C语言编程#