C·指针
ChapterI
- 指针的基础使用:*和&符号,分别为引用和取地址符号
- 一维数组指针:
- 数组名就是首个数据的地址
- 指针的位移和下标访问本质上是一样的
- 几个比较容易混淆的有关运算符优先级的东西
- i++ i– ++i –i *(++i) *(–i) *(i++) *(i–)
不看这个我都还不知道原来++i和i++的理解方式不是按照从右到左的方式,我真的菜死
#include<bits/stdc++.h>
using namespace std;
#define loop(i,start,end) for(int i=start;i<=end;++i)
#define max(a,b) ((a>b)?a:b)
void swap(int *a, int *b){//指针的基础使用
int t = *b;
*b = *a;
*a = t;
}
void fusion(int *a,int lena,int *b,int lenb,int *c,int lenc){
if(lenc<lenb+lena)return;
memset(c,0,sizeof(c));
int p0 = 0;
loop(i,0,lena){
*(c+p0)=*(a+i);
p0++;
}
loop(i,0,lenb){
*(c+p0)=*(b+i);
p0++;
}
}
void Sort(int a[],int lena){ // 一维数组指针的使用
loop(i,0,lena){
loop(j,i,lena){
if(*(a+i) < *(a+j))
swap(a+i, a+j);
}
}
}
int main(){
int a = 10, b = 11;
swap(&a,&b);
printf("%d %d\n",a,b);
int f[5] = {1,5,1,1,1};
int g[3] = {0,3,0};
int k[10] = {0};
fusion(f,3,g,3,k,9);
loop(i,0,9)
printf("%d ",k[i]);
printf("\n");
Sort(k,9);
loop(i,0,9)
printf("%d ",k[i]);
return 0;
}
>>>OutPut:
11 10
1 5 1 1 0 3 0 0 0 0
5 3 1 1 1 0 0 0 0 0
Chapter II
- 函数指针:指向函数的指针,
returnType (*pointerName)(param list);
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 AndrewLee!