C++ 关于指针的用法

x33g5p2x  于2022-04-10 转载在 其他  
字(0.8k)|赞(0)|评价(0)|浏览(290)

一、初始指针

  1. int *p;
  2. p=&a;
  3. *p是值,p是地址
  4. 双重指针 **pp;
  5. pp=&p;

二、指向数组的指针

  1. int a[5],int *p=a;
  2. pa、&a[0]指向a的首地址a[0]
  3. p是变量,而a,&a[i]是常量;
  4. 指针变量访问a数组元素 p[i],*(p+i)
  5. 指针可以看出数组名
  6. int *a;
  7. a=new int[n-1];

三、指针与字符串(指针存储字符串)

  1. 字符指针变量可以用字符串常量初始化
  2. char *str="I love China!";
  3. 输出要用:printf("%s",str);
  4. 字符串指针作为函数参数,可以用来函数传递另一个函数。
  5. void test(char* str){}
  6. int main(){
  7. char s[100];
  8. char *str=s;
  9. test(str); //函数调用
  10. }

四、指针作为函数参数

  1. void test(int *x){//指针做参数
  2. int t = *x;
  3. cout<<t;
  4. }
  5. int main(){
  6. int a=5;
  7. test(&a); //调用函数
  8. }

五、函数返回指针(函数可以返回数字,指针同样也可以)

  1. 函数定义:int *test(int a){}
  2. 函数调用:int *p=test(5);
  3. printf("%d%d",p,*p) //第一个地址、本身

六、函数指针

  1. 函数定义:int test(int a);
  2. 函数声明:int (*p)(int a);
  3. 获取函数地址:p=test;
  4. 函数调用:p(5); || (*p)(5);
  5. typedef int (*LP)(int)
  6. int main(){
  7. LP p=test;
  8. p(5); //调用函数
  9. }

七、结构体指针

  1. struct student{
  2. char name[20];
  3. char sex;
  4. float score;
  5. }; student *p;
  6. 指针名->成员名 p->sex
  7. (*指针名).成员名 (*p).sex

相关文章