(三)C语言的变量与常量

一.C语言中标识符(变量)的命名规则

(1)可以由数字、字母、下划线_组成
(2)不能以数字开头
(3)不能是关键字
(4)区分大小写

二.在C语言中定义常量的方法及其区别

1.使用#define宏定义:#define LENGTH = 10
2.使用const关键字:const int LENGTH = 10 或 int const LENGTH = 10
3.使用枚举:enum { PI = 3.14159 };

这些方法之间的主要区别在于安全性和作用域。使用#define的常量没有类型,而使用const关键字的常量是有类型的。 使用const是更安全和推荐的做法,因为它提供了类型检查,而#define则可能导致潜在的错误。此外,#define是在预处理阶段进行文本替换的,可能会导致一些意外的行为,而const关键字是在编译阶段处理的。

三.变量的声明和定义的区别

为变量分配地址和存储空间的称为定义,不分配地址的称为声明。
一个变量可以在多个地方声明,但是只在一个地方定义。加入 extern 修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义。

四.局部变量能否和全局变量重名

能,局部会屏蔽全局。要用全局变量,需要使用 ":: "
局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。

五.全局变量和局部变量的区别

(1)作用域不同:全局变量的作用域为整个程序,局部变量的作用域为当前语句块;

(2)内存储存方式:全局变量存储在全局数据区,局部变量存储在栈上;

(3)生命周期不同:全局变量的生命周期和程序一样,局部变量随着语句块的结束而结束;

(4)当局部变量与全局变量同名时,优先使用局部变量;

六.用变量a给出下面的定义

a) 一个整型数;
b)一个指向整型数的指针;
c)一个指向指针的指针,它指向的指针是指向一个整型数;
d)一个有10个整型的数组;
e)一个有10个指针的数组,该指针是指向一个整型数;
f)一个指向有10个整型数数组的指针;
g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数;
h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数
a)int a
b)int *a;
c)int **a;
d)int a[10];
e)int *a [10];
f) int a[10], *p=a;
g)int (*a)(int)
h) int( *a[10])(int)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/49481.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务实战系列之玩转Docker(六)

前言 刚进入大暑,“清凉不肯来,烈日不肯暮”,空调开到晚,还是满身汗。——碎碎念 我们知道,仓库可见于不同领域,比如粮食仓库、数据仓库。在容器领域,自然也有镜像仓库(registry&…

代码随想录——零钱兑换Ⅱ(Leetcode518)

题目链接 完全背包 class Solution {public int change(int amount, int[] coins) {int[] dp new int[amount 1];dp[0] 1;for(int i 0; i < coins.length; i){for(int j coins[i]; j < amount; j){dp[j] dp[j - coins[i]];}}return dp[amount];} }本题为组合问题…

实时系统中的目标检测:速度与精度的较量

实时系统中的目标检测&#xff1a;速度与精度的较量 目标检测算法是计算机视觉领域的基石之一&#xff0c;广泛应用于实时系统中&#xff0c;如视频监控、自动驾驶汽车、工业自动化等。然而&#xff0c;将目标检测算法应用于实时系统并非易事&#xff0c;它带来了一系列技术挑…

uni-app AppStore Connect上传拒绝汇总

1.Guideline 2.3.3 - Performance - Accurate Metadata 问题是图片不对&#xff0c;最好是自己截图&#xff0c;然后用香蕉云编 上传图片合成图片 2.Guideline 5.1.2 - Legal - Privacy - Data Use and Sharing 解决办法&#xff1a;在uniapp manifest.json找到 APP常用其他…

【软考】系统集成项目管理工程师【第二版】

&#x1f44a;重要通知&#x1f44a; &#x1f44a; 1. 2024年中考上半年取消&#xff0c;改下半年&#x1f44a; &#x1f44a; 2. 2024下半年 使用《系统集成项目管理工程师教程》第三版&#x1f44a; &#x1f44a; 3. 为了方便大家学习&#xff0c;博主正在整理第三版 &am…

使用uniapp开发小程序(基础篇)

本文章只介绍微信小程序的开发流程&#xff0c;如果需要了解其他平台的开发的流程的话&#xff0c;后续根据情况更新相应的文章,也可以根据uniapp官网的链接了解不同平台的开发流程 HBuilderX使用&#xff1a;https://uniapp.dcloud.net.cn/quickstart-hx.html 开发工具 开始…

# OpenCV 图像预处理—形态学:膨胀、腐蚀、开运算、闭运算 原理详解

文章目录 形态学概念膨胀使用膨胀操作来修复裂痕示例代码关键解析&#xff1a; 腐蚀使用腐蚀操作消除噪点示例代码&#xff1a; 开运算—先腐蚀后膨胀闭运算—先膨胀后腐蚀 形态学概念 首先看这两张图片 一张图周围有大大小小的噪音和彩点&#xff0c;另一张图片中字母有间隙&…

Android 适配:版本适配

文章目录 自定义ViewGroup添加View时对View对应的LayoutParams的处理操作 自定义ViewGroup添加View时对View对应的LayoutParams的处理操作 Android 7只需要重写ViewGroup的generateLayoutParams方法&#xff0c;创建需要的LayoutParmas Overridepublic LayoutParams generateL…

php连接sql server

php连接sqlserver有三种方式 一&#xff1a;odbc连接&#xff0c;废话不多说直接上代码,封装了一个单例 <?php /*** odbcServer.php* Author: Erekys*/namespace App\Model; class odbcServer{public static $server;public static $username;public static $password;pu…

【2024最新】汇总国内免费GPT接口(响应快)

一、什么是GPT接口&#xff1f; GPT接口通常指的是一种编程接口&#xff08;API&#xff09;&#xff0c;它允许开发者将生成预训练转换器&#xff08;Generative Pre-trained Transformer&#xff0c;简称GPT&#xff09;的能力集成到自己的应用程序中。GPT是一种人工智能模型…

基于jeecgboot-vue3的Flowable流程仿钉钉流程设计器-发送信息服务处理

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、因为仿钉钉设计器里发送消息处理是一个服务任务&#xff0c;所以要根据这个服务任务进行处理 2、这里目前只对消息进行处理&#xff0c;就是用websocket的发送方式 输入相应的内容&…

go语言Gin框架的学习路线(十)

目录 GORM的CRUD教程 查询 普通查询 定义 User 结构体 查询所有用户 查询第一个用户 总结 条件查询 内联条件 额外查询选项 高级查询 链式操作 Scopes 多个立即执行方法 GORM的CRUD教程 CRUD 是 "Create, Read, Update, Delete"&#xff08;创建、查询…

电影类平台如何选择服务器

电影类平台如何选择服务器 1、数据存储 电影网站对服务器的要求是比较高的&#xff0c;对存储空间的需求特别大&#xff0c;所以在服务器选择上首先要确保足够大的存储空间。另外&#xff0c;当你的网站内容特别多时&#xff0c;内存不够用&#xff0c;可以选择增加内存&#x…

AIoTedge边缘物联网平台,开启智能物联新架构

边缘物联网平台是一种将计算能力、数据处理和应用服务部署在网络边缘的解决方案&#xff0c;旨在提高响应速度、降低带宽需求和增强数据安全。根据搜索结果&#xff0c;边缘物联网平台应具备以下功能&#xff1a; 云边协同&#xff1a; 云边一体架构&#xff0c;通过云端管理边…

electron笔记:electron更新版本

一.electron版本由13.6.9更新至22.3.27 之前因为remote的原因&#xff0c;electron版本停留在13.6.9&#xff0c;14.x后需要单独处理remote&#xff0c;此次需要Chrome 95以上部分功能&#xff0c;所以需要升级版本到16.x以上&#xff0c;因为本机nodejs版本为16.9.1&#xff…

【深度学习基础】深度学习的关键概念和网络结构

深度学习基础&#xff1a;深度学习的关键概念和网络结构 目录 引言深度学习的关键概念 神经网络激活函数损失函数优化算法 深度学习的网络结构 前馈神经网络&#xff08;FNN&#xff09;卷积神经网络&#xff08;CNN&#xff09;循环神经网络&#xff08;RNN&#xff09;生成…

【java基础】创建线程的主要方式

在Java中创建线程主要有三种方式&#xff1a; 继承Thread类 这是最传统的创建线程的方式。你需要创建一个Thread类的子类&#xff0c;并重写run()方法。在run()方法中编写线程要执行的代码。然后&#xff0c;实例化这个子类并调用start()方法来启动线程。 class MyThread exten…

【BUG】已解决:Downgrade the protobuf package to 3.20.x or lower.

Downgrade the protobuf package to 3.20.x or lower. 目录 Downgrade the protobuf package to 3.20.x or lower. 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身…

【昇腾AI创新大赛集训营南京站学习笔记】-Ascend算子开发课程

昇腾AI创新大赛训练营 14:00-14:30 基础知识-理论课 一、CANN 、达芬奇架构和算子 1.AI Core逻辑架构 达芬奇架构包含三部分&#xff1a; 1&#xff09;计算类&#xff1a;矩阵计算单元&#xff08;两个矩阵扔进去相乘&#xff09;、向量计算单元、标量计算单元 2&#xff09;控…

逻辑漏洞面试问题

1、你挖过业务逻辑漏洞吗&#xff1f;了解的有哪些&#xff1f;如何进行的&#xff1f;对于业务逻辑漏洞&#xff0c;只有一个登录框&#xff0c;你 会怎么测试&#xff1f;逻辑漏洞 xray 如何避免敏感操作&#xff1f; 常见的业务逻辑漏洞类型包括&#xff1a;订单支付漏洞、…