- 宏常量与const常量的区别:
- 指针与数组的区别:
- ++i和i++的区别:
- 求X的n次幂 pow(X,n);
1.宏常量与const常量的区别:
宏常量,如 #define MAX_NUM 65536 本质为字面量 ,没有数据类型。不占内存。进行文本替换。接续符 \ 。宏常量没有作用域。
const定义的常量,如 const int a本质为变量,是有数据类型的;有const常量后会占用系统内存,开发环境会对const常量进行调试。
- 2.指针与数组的区别:
指针的本质:保存地址值
指针在声明时,*表示该变量为指针变量。指针在使用是,*表示取该指针所指向的内存空间的值
p<->&i *p<->i
int a;
int * i;
i=&a;
指针变量的值,指的是 i,在这里是a的地址,类型为int *
指针地址的值,指的是i的地址值,写作&i,代表内存,类型为int **
指针指向对象的值 ,指的是指针i所指内存存储的值,写作*i,在这里是变量a的值,类型为int
数组名可以看做常量指针使用
数组名是数组首元素的地址
数组的地址和数组首元素的地址是相同的,但意义不一样。
a[n] <=>*(a+n) <==>*(n+a) <==> n[a]
指针可以当做数组名使用
int a[5]={0}; int * p=a;
数组作为函数参数时,编译器编译成指针,退化为指针
void func(int a[]) ==>void func(int *a) ==>void func(int*a,int a_size)
new的用法:new一个长度为10的数组
int * A=new int[10];
A[0]=1;
A[1]=2;
。。。
- 3.++i和i++的区别:
++i 是先把i加1再取i的值;i++是先取i的值,再加1
- 4.C语言的四舍五入
double b;
b=int((b*10)+0.5)/10.0;//四舍五入到小数点后一位,
四舍五入一位是 *10/10 两位是 *100/100 后面还要有 .0
printf("%.1f",b);
cout<<setprecision(1)<<b;