C++指针
一、定义
指针:用来存放变量地址(起始地址)的变量(间接访问)。
引用操作符&:获取一个变量的地址值;
解引用操作符*:获取一个地址对应的数据; 1
2
3
4
5int i = 5;
int *i_pointer = &i; //定义一个指针变量,32位下占4字节
printf("%d", i); //直接访问,输出5
printf("%d", *i_pointer); //间接访问,输出5
printf("%d", i_pointer); //输出i所在的地址1
2
3
4void(int *j)
{
*j = 5; //*j等价于变量i
}1
change(&i); //j=&i
1
2
3
4
5
6
7int a[5]={1,2,3,4,5};//数组名a存储了其起始地址
int *p;
p = a;
for (int i=0;i<5;i++)
{
printf("%d",*(p+i)); //输出a[i]的值
}1
2
3
4
5
6
7
8
9
10
11
12void change(char *d)
{
*d = 'H';
d[1] = 'E';
*(d+2) = 'L';
}
int main()
{
char c[10] = "hello";
change(c); //变为HELlo
return 0;
}1
2
3
4
5
6int size=20; //需要申请的字节数
char *p;
p = (char*)malloc(size); //在堆区申请20字节空间,malloc返回无类型指针void*,需要强制转换
strcpy(p,"malloc success");
puts(p); //输出malloc success
free(p); //用完记得释放