c语言中取址运算符、指针运算符

1、单目运算符&为取址运算符,其作用是获取对象的地址,生成指向对象的指针,与其说是获取地址,不如说是生成指针。对象地址的转换说明为%p,其中的p为pointer的首字母。

复制代码
#include <stdio.h>

int main(void)
{
    int n;
    double x;
    int a[3];
    
    printf("nnnn:   %p\n",  &n);
    printf("xxxx:   %p\n",  &x);
    printf("a[0]:   %p\n",  &a[0]);
    printf("a[1]:   %p\n",  &a[1]);
    printf("a[2]:   %p\n",  &a[2]);
    
    return 0;
}
复制代码

 

 

2、单目运算符*为指针运算符

复制代码
#include <stdio.h>

int main(void)
{
    int a = 100;
    int b = 200;
    int c = 500;
    
    int *x, *y;  //声明指向int型的指针变量
    
    x = &a;     // 生成指针x、y,x为指向对象a的指针, y为指向c的指针
    y = &c;
    
    printf("xxxx:   %d\n", *x);     //指针运算符加指针可以获取该指针指向的对象, *x可以获取指针x指向的对象,即对象a。 同理,*y获取对象c。
    printf("yyyy:   %d\n", *y);
    putchar('\n');    
    
    x = &b;    //修改x的指针
    *y = 800;  // y为指向c的指针, *y相当于c的别名,对*y修改,相当于对对象c进行修改
    
    printf("aaaa:    %d\n", a);
    printf("bbbb:    %d\n", b);
    printf("cccc:    %d\n", c);
    printf("xxxx:    %d\n", *x);
    printf("yyyy:    %d\n", *y);
    
    return 0;    
} 
复制代码

 

posted @   小鲨鱼2018  阅读(1443)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示