C语言 变量与常量

这篇具有很好参考价值的文章主要介绍了C语言 变量与常量。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 修饰符

a)extern:声明一个已定义的变量,不能重新赋值;

注意:不建议在头文件中定义全局变量,而在源文件中定义,然后在头文件中使用extern声明。

因为若头文件中定义了全局变量,然后多个源文件使用该头文件,编译时会报重定义错误。

b)const:修饰的变量不可变;

c)volatile:防止编译器优化;

d)register:建议将变量定义在寄存器中;


2. static变量、全局变量、局部变量

a)static全局变量只能在本文件中访问;

b)static局部变量只初始化一次,下次仍旧使用上次的值;

c)普通全局变量可在其他文件中访问,但访问前需用extern声明;

d)局部变量和全局变量重名,则在局部变量作用域内优先使用局部变量;

e)C++中,局部变量和全局变量重名,在局部变量作用域内想访问全局变量,则可使用::作用域符号,如 ::a

例子如下:

/* fileA.c */ 
static int a = 10; // 静态全局变量,只能在本文件中访问
int b = 20;        // 普通全局变量,可在其他文件中访问

void printA() {
    printf("a = %d\n", a); // 访问静态全局变量a
    printf("b = %d\n", b); // 访问普通全局变量b
}
/* fileB.c */
extern int b;   // 使用extern声明全局变量b

void printB() {
    int b = 30;            // 定义一个同名的局部变量b
    printf("b = %d\n", b); // 访问局部变量b
}
/* fileC.cpp */
int g; // 定义全局变量g

void printB() {
    int g = 30;          // 定义一个同名的局部变量g
    cout << g << endl;   // 访问局部变量g
    cout << ::g << endl; // 访问全局变量g
}

3. 打印格式

有符号int %d
无符号int %u
有符号short %hd
无符号short %hu
有符号long %ld
无符号long %lu
字符 %c
float,精度最大7位小数 %f (%m.nf,m:打印总宽度,n:小数位数)
double,精度最大15位小数 %lf

注意:

(1)

char ch = 'a';

sizeof(ch);  // 1
sizeof('a'); // 4,因为'a'为97,是int类型

(2)将字符转为数字:减去 '0' 即可文章来源地址https://www.toymoban.com/news/detail-473287.html

char ch = '8';     // ch = 56

int a = ch - '0';  // a = 8;
// 或者
int a = ch - 48;   // 数字0的ascii为48

到了这里,关于C语言 变量与常量的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【05】STM32·HAL库开发-C语言基础知识 | stdint.h介绍 | 位操作 | 宏定义的使用 | 条件编译 | extern声明 | typdef使用 | 结构体、指针、代码规范介绍。

      stdint.h 是从 C99 中引进的一个标准 C 库的文件,可以在MDK5的安装路径:D:MDK5.34ARMARMCCinclude中找到。   stdint.h 定义了很多类型别名,将有符号的char类型定义别名为int8_t等,使用此套别名有易于移植。   在MDK中需要配置才能支持使用S99标准, 默认是勾选的 。   只

    2024年02月08日
    浏览(44)
  • 问题:【IntelliJ IDEA】解决idea自动声明变量加finall修饰符问题

    1 new String() 2 快捷方式生成变量 final修饰的 settings-----》Editor------》Code Style--------》java下的这两个选项不被勾选 final modifier 然后在生成变量的时候,再次跳出来 dexlare final 的时候,按下 Alt+F 步骤三:如果上一步没有生效,重启idea file-invalidate caches

    2024年02月12日
    浏览(52)
  • 【C语言趣味教程】(5) 常量:字面常量 | 类型常量 | const 关键字 | const 的声明 | 程序中的只读概念 | const 保护机制 | 如何巧妙区分 “指针常量“ 和 “常量指针“

        🔗 《C语言趣味教程》👈 猛戳订阅!!! ✨ 专栏介绍 / 总目录: 【C语言趣味教程】(0) 导航篇 ​ —— 热门专栏《维生素C语言》的重制版 —— 💭 写在前面: 这是一套 C 语言趣味教学专栏,目前正在火热连载中,欢迎猛戳订阅!本专栏保证篇篇精品,继续保持本人

    2024年02月15日
    浏览(45)
  • C语言 变量与常量

    a) extern :声明一个已定义的变量,不能重新赋值; 注意:不建议在头文件中定义全局变量,而在源文件中定义,然后在头文件中使用extern声明。 因为若头文件中定义了全局变量,然后多个源文件使用该头文件,编译时会报重定义错误。 b) const :修饰的变量不可变; c)

    2024年02月08日
    浏览(40)
  • GO语言的变量与常量

    go是一个静态语言 变量必须先定义后使用 变量必须要有类型 定义变量的方式: var 名称 类型 var 名称 =值 名称 :=值 例如: 这样就存了一个num类型为int的变量 上面使用简化的定义通过num自动判断后面的类型为int并赋值为1 第三种方式就是使用这种方式赋值 使用冒号加等于赋值

    2024年02月19日
    浏览(39)
  • 【C语言】const修饰普通变量和指针

    大家好,我是苏貝,本篇博客带大家了解const修饰普通变量和指针,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 用const修饰普通变量时,是在语法层面限制了变量的修改,但是本质上,变量还是变量,是一种不能被修改的变量。以下两种定义方式都可以:

    2024年02月12日
    浏览(48)
  • 二、GoLang输出HelloWorld、基本数据类型、变量常量定义、基本类型转换

    go语言中,想要输出内容到控制台,package必须是main,包括方法名也必须是main, go语言输出的语法是 fmt 库。 Go语言的基本类型有: boolean:布尔类型 true / false string :字符串类型 数值型: int8:有符号8位整型(-128到127)长度 int16:有符号16位整型(-32768到32767)长度 int32:有

    2024年02月09日
    浏览(59)
  • Java面向对象核心修饰符,final修饰符、常量、常量方法与常量类

    之前跟大家说过,在面向对象中,有abstract、static和final 这3个核心修饰符。截止到现在,我们已经把abstract与static修饰符学习完毕,接下来就让我们再来学习final修饰符的用法与特性吧。 全文大约 【3500】字 ,不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有

    2024年02月04日
    浏览(41)
  • Go语言基础之变量和常量

    标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名、常量名、函数名等等。 Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头。 举几个例子:abc, _, _123, a123 是指编程语言中预先定义好的具有特殊含义的标识符。

    2024年02月12日
    浏览(43)
  • 【Go语言】Go语言中的变量和常量

    Go语言中的变量和常量 1 变量 变量相当于是对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块存储空间。 Go 语言是强类型静态语言,所以变量的声明与赋值方式与 PHP/Python 等动态语言相比有很大的区别。

    2024年02月21日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包