字符型指针、字符串指针、整数指针

字符型指针

char a[] = "bcdef";

char *m = a;

//m = bcdef  *m = b

//字符串指针m中实际上存的是该字符串首字符的地址,所以用取内容运算符*对m进行操作即(*m)时,*m = b

m = m+2

//m = def    *m = d

//m进行了+2,所以此时指针指的位置向后移动了两位,*m=d

将一个字符串指针赋给另一个字符串指针

char *pa = "pa111";

char *pb = pa;

//pb = pa111,*pb = p

字符串指针

string str="123456";

string *m = &str;         // *m="123456"

整数型指针

 

#include<iostream>
#include<stdio.h>
using namespace std;

void increment(int *p){
	(*p)++; 
}

void incrementp(int **pointer){
	(**pointer)++;
}

void move_p(int **pointer,int arr[]){
	*pointer = &arr[1];
}

int main(){
	
	int a=10;
	
	int *q = &a;
	increment(q);   //a值加一 
	cout << "a = " << a << endl; //a=11
	
	int arr[]={1,6,7,8,9};
	//int *p = arr+1;  //*p值为6 
	//int *p = arr;    //*p值为1
	 
	int *p = &arr[0];
	
	incrementp(&p);  //将指针p所指位置的值加一 
	cout << *p << endl; //*p=2
	
	move_p(&p,arr);  //指针指向数组第二个位置 
	cout << *p << endl; //*p=6
	return 0;
}

 


版权声明:本文为l903445981原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。