##1. 数组和指针的关系
arr == &arr[0]
代表首元素的地址
但是有两个例外
sizeof(arr) 得到整个数组的总字节数
&arr 取整个数组的地址
注意:arr、&arr[0]、&arr 它们打印出来的都是同一个地址
arr+1跳过一个元素
&arr+1跳过整个数组
公式:arr[i]==*(arr+i);
##2.数组名会退化
void test (int arr[] )
void test ( int *arr )
##3.指针数组和数组指针
看最后两个字区分
int (arr)[5]; 里面放5个int
int *arr[5]; 里面放5个int
##4.常量字符串
const char *p=“abcdef”;
char str[]=“hello”;
前者本质是指针,后者是数组
p存的是a的地址,str存的是hello \ 0
##5.冒泡排序
int sz=sizeof(arr)/sizeof(arr[0]);
for(i=0;i<sz_1;i++)
{
for(j=0;j<sz-1-i;j++)
{ if(arr[j]<arr[j+1])
{
int tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
}
}
后期用qsort简化
##6.浮点数不可以直接a==b
这样会出现精度缺失
If(fabs(a-b)<1e-7)来判断
1e-7表示10的负7次方
##7.switch
没有break就会一直穿透下去
不管是case还是default
##8.二级指针
int **ppa=&p
存放的是p的地址
6940



被折叠的 条评论
为什么被折叠?



