• c语言指针


    1.计算机会为变量在存储器中分配空间。

    2.局部变量位于栈中。

    3.全局变量位于全局变量段。

    4.指针只是一个保存“存储器”地址的变量。

    5.&运算符可以找到变量的地址。

    6.*运算符可以读取存储器地址中的内容

    7.*运算符还可以设置存储器地址中的内容

    如: int x = 3;  int *address = &x;

    *address中保存的就是x变量的存储地址

    通过&提取x的地址,保存在了*address中

    #include <stdio.h>
    int main()
    {

    int x = 3;
    int *address = &x;

    // 打印结果:一样相等

    printf("%p----%p", *address, x);
    return 0;
    }

    讲解:

    &运算符用于接收一个数据并获取地址 而  *运算符则是用于接收一个地址并保存数据

    c语言中的指针在其他语言中叫法为引用类型,*就算对于地址的解析,生成具体的值

    相当于其他语言中的,引用地址的具体值

    C语言中声明一个指针变量:

    指针变量是什么呢?

    答:用来保存内存地址的变量,相当于其他语言的引入地址传给函数假参

    声明指针变量:

    int *名称(或标识符) =  &变量;

    如:

    int x = 3;

    int *address = &x;

    &提取了变量x的地址并赋值给了address变量,*就是接收地址来表示这是一个指针变量

    这时如果你去改变*address的值你会发现,x的值也被改变了

    *address = 666; 那么 x 也被改变成了666

    因为*address 和 &x 就是同一个内存地址

    如:

    #include <stdio.h>
    int main()
    {
    int x = 3;
    int *address = &x;
    *address = 666;
    printf("%i----%i", *address, x);
    return 0;
    }

    如果将格式化输出符,改变%p以16进制格式打印输出

    #include <stdio.h>
    int main()
    {
    int x = 3;
    int *address = &x;
    *address = 666;
    printf("%p----%p", *address, x);
    return 0;
    }

    打印结果: 地址相同,自行测试

  • 相关阅读:
    ubuntu 可以用 root 登录 ftp
    正则表达式 匹配中文,英文字母和数字及_的写法!同时控制长度
    HttpUtility.UrlEncode,Server.UrlEncode 的区别
    HttpUtility.UrlEncode 方法 (String) 对 URL 字符串进行编码 NET Framework 4.6 and 4.5
    C# 多线程task
    NET Framework 4.5 有更加简便的方法 Task.Run()
    Tuple<int, int> Dictionary<string, object>妙用
    sha1加密
    MD5和sha1加密算法--散列加密技术 MD5:128bit的大整数
    3、Task.Factory属性
  • 原文地址:https://www.cnblogs.com/xiaolantian/p/10744887.html
Copyright © 2020-2023  润新知