首页 > 其他分享 >C语言关于指针

C语言关于指针

时间:2023-04-17 09:35:20浏览次数:24  
标签:变量 int void C语言 地址 关于 printf 指针

 

// 指针变量就是记录地址的变量
/**
        int i;
        int* p=&i;  *表示p是一个指针,指向的是int,现在把i的地址交给p(也叫p指向i)
        int* p,q;   这一行和下一行都是表示p是指针指向int,而q只是一个普通的int类型的变量    *p是一个int,不管*靠近int还是p 
        int *p,q;
        如果要表示q也是指针,那么需要在q前面也加上* 
        
        *是一个单目运算符,用来访问指针的值所表示的地址上的变量(也就是地址对应的那个整数!!),可以做左值也可以做右值
        int k=*p;  可以放在赋值号的  右  边去  读  它的值 
        *p=k+1;    也可以放在赋值号的  左  边去  写  它的值 
    */ 
#include <stdio.h>

void f(int *p);
void g(int k);

int main()
{
    int i=6;
    printf("&i=%p\n",&i); //&i=000000000062FE1C
    printf("&i=%d\n",i); //&i=6
    f(&i);
    g(i);
    
    return 0;
 } 
 
void f(int *p)
{
    printf(" p=%p\n",p); // p=000000000062FE1C  这一步结果同&i,说明他获得了访问(即读和写)&i的能力 
    printf("*p=%d\n",*p); //*p=6  可以把*p这个整体看作是一个整数 
//    *p=26; //改了i的值 
}

void g(int k)
{
    printf(" k=%d\n",k); // k=6
}

获取地址的写法  printf("&i=%p\n",&i);

获取常量的写法  printf("&i=%d\n",i);

对比区分

标签:变量,int,void,C语言,地址,关于,printf,指针
From: https://www.cnblogs.com/vv-77/p/17324759.html

相关文章

  • c语言第六天
    进制转换:1、为什么使用二进制、八进制、十六进制?  因为目前的CPU只能识别高低两种电平,只能对二进制数据进行计算  二进制虽然能够直接被计算机识别,但是不方便人去书写和记录,因此就把二进制数据转换成八进制,方便记录到文档中  随着CPU的位数的不断增加,已经到目前......
  • c语言第七天
    复习:  进制转换:    十进制转二进制:      求余:对2求余,直到商为0,余数结果逆序就是二进制      求权:数据-2^(n-1)能减为1,否则0    二进制转十进制:      2^(n-1)求和    二进制转八进制:     ......
  • this指针 (保存调用成员函数对象的地址)
    1.在调用成员函数前,先将对象地址存入ecx寄存器,进入函数后将ecx压栈保存对象地址,当需要用到this指针时,再弹栈取出赋值给函数内部自带的一个this指针2.数据成员是由this指针+偏移取到的。类的对齐规则和结构体一致3.静态成员函数没有this指针4.若函数形参和成员......
  • 逍遥自在学C语言 | 位运算符>>的高级用法
    前言在上一篇文章中,我们介绍了<<运算符的高级用法,本篇文章,我们将介绍>>运算符的一些高级用法。一、人物简介第一位闪亮登场,有请今后会一直教我们C语言的老师——自在。第二位上场的是和我们一起学习的小白程序猿——逍遥。二、优化除法运算除法运算需要比位移......
  • C语言中,取反运算符~a=-(a+1)的原因
    1、因为计算机直接拿读取到的数据去运算付出的代价是最小的,所以计算机存储的数据的形式应该满足读取后不必经过任何加工就能直接用来运算由于原码不经加工无法实现(+a)+(-a)=0,所以不满足该要求,为了满足(+a)+(-a)=0的要求,人们设计出了补码来满足该要求因而计算机中存储数据的形式......
  • 函数指针
    函数指针 #include<stdio.h>void(*fun(void(*)(int),int))(int);//void(*)(int)fun(void(*)(int),int);voidfun1(inta);intmain(intargc,constchar*argv[]){intnum=123;fun(fun1,num);return0;}void(*fun(void(*p)(i......
  • 平衡二叉树——C语言描述——创建,增加结点
    平衡二叉树——C语言描述——创建,增加结点目录平衡二叉树——C语言描述——创建,增加结点0测试用例框架1定义2数据结构2增加平衡二叉树的结点(1)代码(2)测试用例0测试用例框架https://blog.csdn.net/m0_59469991/article/details/127137119?csdn_share_tail=%7B%22type%22%3A%2......
  • 在Vue中,关于require与required
    在Vue里面,是用require还是required?始终拿捏不定,所以这里记录一下图片是require('@/xxx')props里面是required表单验证里面是required总结:只有图片是require,其它都是required......
  • 关于敏捷开发、系统重构、设计原则、设计模式之间的思考
    敏捷开发、系统重构、设计模式是软件开发中不同的概念,它们之间有一些联系和相互影响。敏捷开发方法强调快速响应客户需求,通过迭代和增量的方式来开发软件。在敏捷开发中,设计模式可以被用来提高软件质量和可维护性,因为设计模式是已经被证明有效的软件设计方案。在开发过程中,团队可......
  • Rust编程语言入门之智能指针
    智能指针智能指针(序)相关的概念指针:一个变量在内存中包含的是一个地址(指向其它数据)Rust中最常见的指针就是”引用“引用:使用&借用它指向的值没有其余开销最常见的指针类型智能指针智能指针是这样一些数据结构:行为和指针相似有额外的元数据和功能引用计数......