zoukankan      html  css  js  c++  java
  • C++指针初始化

    (转http://www.nowamagic.net/librarys/veda/detail/2128)
    int
    i; int *pi; i = 30; pi = &i; printf("%d ", i); printf("%d ", *pi); printf("%d ", &i);

    #include "stdio.h"
    
    main()
    {
        char a,*pa;
        a = 10;
        pa = &a;
        *pa = 20;
        printf("%d", a);
    }

    输出:20

    通过指针访问数组元素

    int i, *pa, a[] = {3,4,5,6,7,3,7,4,4,6};
    pa = a; /*请注意数组名a直接赋值给指针pa*(a的首地址赋给pa)/
    for (i = 0; i <= 9; i++)
    {
        printf("%d
    ", pa[i]);
    }

    int i, *pa, a[] = {3,4,5,6,7,3,7,4,4,6};
    pa = a;
    for (i = 0; i <= 9; i++)
    {
        printf("%d
    ", *(pa+i));
    }

    i = 30; 

    int *pi;

    使用“int *pi”声明指针变量—— 其实是在内存的某处声明一个一定宽度的内存空间,并把它命名为pi。

    pi = &i;//pi储存的是i的地址

    printf("%d", *pi);

    *pi是pi所指地址的内容,即printf输出30

    *pi = 40;

    则此时

    printf("%d", i);输出40

    1 int i = 1;
    2 int *pi;//声明指针变量,在内存的某处声明一个一定宽度的内存空间,并把它命名为pi
    3 pi = &i;//给pi赋值,pi储存的是i的内存地址;&i 返回i变量的内存地址
    4 cout<<*pi<<endl;//输出结果为 1
    5 *pi = 2;//为pi所指向的内存地址赋值,即i = 2
    6 cout<<i<<endl;//输出结果为 2
    7 cout<<*pi<<endl;//输出pi所指向的内存地址的值,输出结果2

     指针初始化方法:

    1、定义时直接初始化,即赋值一个已有变量的内存地址

    int a;

    int *p = &a;

    2、开辟一块新的内存空间

    int *p = (int*)malloc(sizeof(int));

     free(p);
     p=NULL;/*请加上这句*/

        char *a = "abc111";
        char b[] = "abc111";
    
        cout<<sizeof(a)<<endl;//a为指针  4
        cout<<sizeof(*a)<<endl;//*a指向字符串首地址的字符  1
        cout<<sizeof(b)<<endl;//b表示字符串  7
    
        cout<<strlen(a)<<endl;//6
        cout<<*a<<endl;//a
        cout<<a[0]<<endl;//a
  • 相关阅读:
    grab jpegs from v4l2 devices
    c helloworld on zynq
    minicom installation and configuration on ubuntu
    DBA的做法
    sqlserver锁表、解锁、查看销表
    linux内核分析(网课期末&地面课期中)
    Linux内核分析实验八------理解进程调度时机跟踪分析进程调度与
    LINUX内核分析第七周——可执行程序的装载
    Linux内核分析实验六
    Linux内核分析实验五
  • 原文地址:https://www.cnblogs.com/onwayo/p/3536560.html
Copyright © 2011-2022 走看看