-
个人简介
知识点描述
一,指针
1.指针 指针类型,指针类型变量的赋值,解引用.
/* 地址:变量存放在内存中的位置 指针:存放地址的变量 */ int a=10; cout << &a << endl;//取a的地址 -- 输出一个0x开头的16进制数 int *p; p=&a; //表示让指针p指向a cout << p << endl; cout << *p << endl;// &表示取地址 *表示取内容 int *q;//只定义没有初始化----野指针 int *qq=NULL;//指向空地址为0,-----空指针 qq = nullptr;//这个也表示空 cout << qq << endl;2.指针与数组与函数形参
#include<bits/stdc++.h> using namespace std; void f(int a[])//如果要传递二维数组必须指定列数 { for(int i=0;i<5;i++) { cout << *(a+i) << endl; } } int main() { /* 1 字节(Byte) = 8 二进制位(bit) char bool 1 字节 int float 4 字节 long long double 8字节 */ //指针 //数组用指针来实现的 int a[5]={3,2,5,1,6}; cout << a << endl; cout << &a[0] << endl;//0x73fe00 cout << &a[1] << endl;//0x73fe04 f(a); void f(int a[])//函数传递时一维数组的形参 void f(int b[][5])//二维数组的形参须指定列数 return 0; }3.引用
int syx=435; int &my=syx; //引用 相当于别名 //必须在定义的时候赋值 //这个别名不能转移给别人 //别名等同于变量名使用 cout << my;4.值传递,指针传递,引用传递
#include<bits/stdc++.h> using namespace std; //值传递 void f1(int a) { a+=1; } //指针传递 void f2(int *a) { *a+=1; } //引用传递 void f3(int &a) { a+=1; } int main() { int a=1; f1(a); cout << a << endl; f2(&a); cout << a << endl; f3(a); cout << a << endl; return 0; }二,二维及多维数组
freopen("happy.in","r",stdin); freoprm("happy.out","w",stdout); https://vjudge.net/ https://atcoder.jp/ https://cplusplus.com/#google_vignette
-
最近活动