#include<iostream> using namespace std; int main() { int i=100;// 设其地址为4009 int *p=&i;// 此时*为说明符 说明p为指针变量 cout<<p<<endl; //随机给变量i一个地址值 cout<<*p<<endl;//*为指针运算符 求地址中的内容 return 0; }
int a[10] ; int *p; p=&a[0]//指针变量p指向a数据的第一个元素
a[i]=*(a+i) a[i][j]=*(a+i)[j] a[i][j]=*(*(a+i)+j) 对于二维数组a[m][n] 第i行第j列 a[i-1][j-1]=*(&a[0][0]+n(i-1)+j-1)
#include<iostream> using namespace std; int main() { char a1[30],a2[10],*p1,*p2; p1=a1;p2=a2; gets(a1); gets(a2); while(*p1!=‘\0‘)//通过指针变量p1循环到字符不等于\0的字符 p1++; while(*p2!=‘\0‘) *p1++=*p2++; *p1=‘\0‘; puts(a1); return 0; }
#include<iostream> using namespace std; int fun(int i,int j); int main() { int i,j,k; i=10;j=30; int (*pfun)(int i,int j); //函数指针 函数名由指针组成 pfun=fun;//函数名的值等于该函数的地址值 k=(*pfun)(i,j);//求pfun存放地址中的内容 =fun(i,j); cout<<k<<endl; return 0; } int fun(int i,int j) { return (i+j)/2; }
原文:https://www.cnblogs.com/binglingtime/p/12594442.html