一、关于关于字符串 本质是数组还是指针的区分
关于字符串本质的问题
char *str="abc";
此时abc被放到常量区(costant area),只读 不可更改。
char *str2="abc";
char *str3="abc";
printf("%p",str2);
printf("%p",str3);
都会显示同一个地址。这个则是数组形式的地址对应关系。
二、关于函数定义、形参实参和返回值
#include <stdio.h>
int max(int a,int b){//外面定义的函数变量,就是做个样子,故为形参。
if(a<b){
return b;//return的意思其实就是把运算结果交出去
}else{
return a;
}
}
int min(int a,int b){
if(a>b){
return b;
}else{
return a;
}
}
int main(){
int x,y;//这时候的x,y就是真正的实参
scanf("%d %d",&x,&y);
printf("大的是%d\n",max(x,y));
printf("小的是%d\n",min(x,y));
return 0;
}
简单地说,个人理解
函数无返回值,就代表了函数是对输入 的数据仅仅进行了过程处理(如swap函数)
return 的东西,就是整个函数整体最后的数值,可以参与运算(如 min、max函数)
三、关于 float 和 double的选择问题(洛谷题 解题所悟)对于 flaot和double
分数表达的时候 会关系到结果。
例如 1/7为无限不循环小数0.14285714…
此时 精度就会高很多,输入k=14 的时候 就会有不同的结果。