首页 > 其他分享 >学c笔记归纳 第五篇——指针(抽象点)

学c笔记归纳 第五篇——指针(抽象点)

时间:2023-12-05 11:45:06浏览次数:31  
标签:变量 int 笔记 地址 第五篇 内存 printf 指针

概念:内存会划分一个个的内存单元,每个内存单元都有一个编号,1个内存单元的大小为:1字节(1byte),内存单元的编号就是它的地址,地址也被称为指针。

存放指针(地址)的变量就是指针变量;

指针的本质就是地址,地址可以用指针变量存起来;

指针变量也是变量,也分全局和局部。

 

#include <stdio.h>

int main()
{
    int a = 10;//向内存申请4个字节存储10
    &a;//"&"取地址操作符,取首地址
    printf("%p\n", &a);//16进制展现,每次运行程序变量都会重新创建,变量的地址也会变
    int* p = &a;
    return 0;
}

“%p”:以地址形式打印数据 

用这段代码调试,进入内存界面 :

 

 “08”取地址,取四个字节中第一个小字节:“0a”

 

指针变量的大小取决于计算机位数;

#include <stdio.h>
int main()
{
    int a = 10;//向内存申请4个字节存储10
    &a;//"&"取地址操作符,取首地址
    printf("%p\n", &a);//16进制展现,每次运行程序变量都会重新创建,变量的地址也会变
    int* p = &a;
    
    //p就是指针变量
    //变量名p、变量类型int*
    //'*'说明p是指针变量
    //int说明p指向的对象a类型是int类型
    //“*”解引用操作符

    printf("修改前:%d\n", a);
    *p=20;//必须要有"*",通过p中存放的地址,找到p所指向的对象,*p就是p指向的对象,修改它就是修改变量a的值
    //&a = 30; //错误案例:表达式必须是可修改的左值
    printf("修改后:%d\n", a);

    // int q = &a;//报警告:“int”与“int * ”的间接级别不同

    
    //指针变量的大小计算
    //32位用%zd,64位用%zu
    printf("%zd\n", sizeof (char*));
    printf("%zd\n", sizeof(short*));
    printf("%zd\n", sizeof(int*));
    printf("%zd\n", sizeof(float*));
    printf("%zd\n", sizeof(double*));
    //不管什么类型的指针,都是在创建指针变量,指针变量是用来存放地址的
    //指针变量的大小取决于一个地址存放的时候需要多大空间
    //x86:32位机器,32bit位——4byte,所以指针变量的大小是4个字节
    //x64:64位机器,64bit位——8byte,所以指针变量的大小是8个字节
    return 0;
}

 

运行:

 

标签:变量,int,笔记,地址,第五篇,内存,printf,指针
From: https://www.cnblogs.com/xiaowanglong/p/17876882.html

相关文章

  • 正则学习笔记
    正则学习笔记https://www.runoob.com/regexp/regexp-syntax.htmlhttps://blog.csdn.net/weixin_44579563/article/details/119424770(re.findall与分组_坑)https://blog.csdn.net/jiangshandaiyou/article/details/100823381例子捕捉组详解:https://blog.csdn.net/weixin_3......
  • CAN-bus应用笔记:节点篇
    在CAN-bus电路设计中,理论上收发器支持节点数最多可做到110个,但实际应用中往往达不到这个数量。今天我们就来谈谈如何通过合理的CAN-bus总线设计,保证CAN网络中的通讯的可靠性和节点数量。影响CAN总线节点数的因素影响总线节点数的因素有多种,本文我们从满足接收节点的差分电压幅值......
  • 笔记本安装linux
    下载桌面版Ubuntu镜像服务器版Ubuntu镜像使用BalenaEtcher制作系统安装盘(1)官方网站下载:点我下载(2)下载完毕软件之后,打开软件,选择我们下载好的系统镜像,以及要制作成安装盘的U盘,点击“制作”按钮,稍等片刻,安装盘就制作完成啦。(3)进行操作系统安装(4)将引导盘插到要安......
  • 第八周阅读笔记|人月神话————提纲挈领
    这一章讲到了化学工程师已经认识到无法一步将实验室工作台上的反应过程移到工厂中,需要一个试验工厂来为提高产量和在缺乏保护的环境下运作提供宝贵经验。这使我想起了以前工作中做过一次类似的事情。那是一个商品上传功能,因为公司需要在像万圣节这样的日子前上传大量商品,所以需要......
  • <学习笔记> 网络流
    最大流codequeue<int>q;intdep[N],cur[N];intbfs(){ memset(dep,0,sizeof(dep)); q.push(st); dep[st]=1; while(!q.empty()){ intx=q.front(); q.pop(); for(inti=head[x];i;i=nex[i]){ inty=ver[i]; if(dep[y]||!edge[i])continue; dep......
  • 【CCFCSP】2303真题笔记
    -1.田地丈量分析测试数据4101000555-2153881515-210315UNAC:情况不完全max,min就是很好用#include<bits/stdc++.h>usingnamespacestd;intmain(){intn,a,b;cin>>n>>a>>b;longlongarea;while(n--){intx1......
  • 【笔记】可计算理论
    下接复杂性理论计算模型Def.确定图灵机(DeterministicTuringMachine,DTM)7元组,记作\(M=(Q,\Sigma,\Gamma,\delta,q_0,B,F)\),其中\(Q\)是有穷状态集合\(\Sigma\)是有穷输入符号集合\(\Gamma\)是有穷带上符号集,\(\Sigma\sube\Gamma\)\(q_0\)是图灵机的起始......
  • 【笔记】复杂性理论
    上接可计算理论相比可解性,我们还关注一些可解问题的效率——是否存在一个“高效”算法?计算复杂性理论关注问题是否“实际可解”时间复杂性度量Def.时间复杂度timecomplexity确定型:设\(M\)是一个在所有输入上都停机的确定型图灵机。\(M\)的“运行时间”或者“时间复杂......
  • 2023.12.4学习笔记(stm32跑马灯实验——库函数)
     STM32f4有七组引脚(GPIOx),每组引脚有16个IO口,每组由十个寄存器控制。   查找STM32引脚的功能,可以在STM32F04ZGT6文件50页左右查询,此文件所在的位置为硬件资料、芯片资料文件夹里。跑马灯实验思路步骤:1:使能时钟,调用函数RCC_AHB1PeriphClockCmd();       ......
  • 《卓有成效的程序员》读书笔记1
    我觉得此书第一部分总结的一些法则非常好,我提取了一下:法则:1.加速法则  关注本质,而非形式  一个应用程序列表的有用程度与它的长度成反比  程序员的很多时间都浪费在找东西上  华而不实的东西中看不中用  键盘输入总比导航快  首选键盘而非鼠标  ......