首页 > 其他分享 >C语言本地变量的规则

C语言本地变量的规则

时间:2023-04-09 11:22:17浏览次数:38  
标签:变量 int C语言 swap 本地 printf 定义

以以下一段代码为例:

 1 #include <stdio.h>
 2 //以下代码是否能交换两个变量的值?
 3 void swap(int a,int b);
 4  
 5 int main()
 6 {
 7     int a=5;
 8     int b=6;
 9     
10     swap(a,b);
11     
12     printf("%d,%d",a,b);
13      
14     return 0;
15  } 
16  
17  void swap(int a,int b)
18  {
19      int t=a;
20      a=b;
21      b=t; 
22 //     printf("%d,%d",a,b);
23  }

结果是5,6,并没有得到交换,因为main和swap是两个不同的块,swap内部做了交换,但是如果离开那么就失效了

1.本地变量是定义在块内的:

它可以是定义在函数的块内,也可以是语句的块内,也可以随便拉一对大括号来定义变量

2.程序进入这个块之前,其中的变量不存在,离开这个块,其中的变量就消失了

3.块外面定义的变量在里面仍然有效,块里面定义了和块外面同名的则会掩盖块外面的,不能在同一个块内定义同名的变量

{
        int a=111;
        printf("a==%d",a);
    }
    printf("a==%d",a);

 

4.本地变量不会被默认初始化,参数在进入函数的时候被初始化了

标签:变量,int,C语言,swap,本地,printf,定义
From: https://www.cnblogs.com/vv-77/p/17300039.html

相关文章

  • 算法学习之选择排序【C语言】
    选择排序排序规则选择排序是一种简单直观的排序算法,其基本思想是每次从待排序的数据元素中选出最小(或最大)的一个元素,存放到序列的起始位置,直到全部元素排序完成。具体步骤如下:1.从第一个数开始,与其后的数一一比较,如后小前大,则交换,依次比较直至最后一组数。2.通过上述步骤,得到参加循......
  • C语言
    目录1.数据类型:2.数据运算:3.基本语句:1.数据类型:2.数据运算:3.基本语句:本篇随笔为记录学习所用,内容大多来源于网络,如有侵权,请联系博主。......
  • C语言字符串的使用
    做题常常遇到和字符串相关的,发现自己对《字符串》和《字符数组》有误会,因为他们的声明太像了,我会搞混。于是我在DevC++上尝试了9种不同的声明方式,想看看什么时候才算是有效的字符串声明,都是我当前水平可能遇到的。#include<stdio.h>#include<string.h>/* 解释: 字符串和字符......
  • c语言拾遗
    概述gcc-E则经过预编译变成.i文件,还是c代码只是对#中进行字符串的展开和复制-S则经过编译变成.s文件,为汇编代码-c则经过汇编变成.o文件,为二进制文件然后将许多(也许也就几个).o文件链接在一起生成linux中的可执行文件.out直接gcc会将上述整个如果要在编译停下来用......
  • Qt-FFmpeg开发-打开本地摄像头录制视频(7)
    音视频/FFmpeg#QtQt-FFmpeg开发-打开本地摄像头录制视频【软解码+OpenGL显示YUV】目录音视频/FFmpeg#QtQt-FFmpeg开发-打开本地摄像头录制视频【软解码+OpenGL显示YUV】1、概述2、实现效果3、FFmpeg录制视频编码流程4、主要代码5、完整源代码更多精彩内容......
  • Qt-FFmpeg开发-打开本地摄像头(6)
    音视频/FFmpeg#QtQt-FFmpeg开发-打开本地摄像头【软解码+OpenGL显示YUV】目录音视频/FFmpeg#QtQt-FFmpeg开发-打开本地摄像头【软解码+OpenGL显示YUV】1、概述2、实现效果3、FFmpeg打开本地摄像头解码流程4、查询可用摄像头5、设置摄像头打开参数6、主要代码6.1解码代码5.2......
  • 变量使用的注意事项
    定义变量格式数据类型变量名=值;注意事项1.在同一个方法中变量名不能重复2.变量未赋值,不能使用3.long类型的值后面要加L,float类型的值后面要加F4.char类型变量值用单引号,String类型变量用双引号......
  • Jmeter参数化的方式-用户参数、用户自定义变量、CSV文件设置、函数助手
    一、jmeter的主要功能参数化:事先准备好数据,脚本执行时从准备好的数据中取值;可将脚本中的某些输入使用参数来代替,在脚本运行时指定参数的取值范围和规则;在脚本运行时,根据需要选取不同的参数值作为输入,该方式成为数据驱动测试(DataDrivernTest,DDT),参数的取值范围称为数据池(Data......
  • Day03 - CSS 变量
    作者:©liyuechun实现效果用JavaScript和CSS3实现拖动滑块时,实时调整图片的内边距、模糊度、背景颜色,同时标题中JS两字的颜色也随图片背景颜色而变化。涉及特性:rootvar(--xxx):CSS变量(CSSVariables)filter:blur()事件change、mousemoveHTML源码<h2>UpdateCSSVariables......
  • 『0008』- Solidity中public、internal、private在状态变量和函数中的使用以及Solidit
    作者:黎跃春,在上一小节中我们在函数参数中使用storage这个关键字时,当前的函数必须是internal或者private类型。在本小节中,我(微信:liyc1215)将重点为大家介绍属性和函数的使用权限。状态变量、函数的权限一、public备注:为了演示方便,我直接通过https://remix.ethereum.org/来进行演示。p......