首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C 语言】const 关键字用法 ( 常量指针 - const * 左边 - 修饰数据类型 - 内存不变 | 指针常量 - const * 右边 - 修饰变量 - 指针不变 )

一、const 普通用法 ---- const 关键字 CC++ 中的表现不同 , 本篇博客主要介绍 C 语言中的 const 用法 ; const 的用法 : 下面的 2 个写法作用相同...需要查看 const 修饰的是 指针变量 , 还是 修饰 指针变量 指向的内存空间 ; const * 右边 ( 指针常量 | const 修饰的是变量 ) : const 修饰的是 指针变量 ,...如 char * const d , const 修饰的是 char * , 指针不能被修改 ; 这是 指针常量 ; const * 左边 ( 常量指针 | const 修饰的是数据类型 ) : const...修饰的是 指针变量 指向的内存空间 , 如 const char *c , const 修饰的是 char , char 数据不能被修改 , 这是 常量指针 , 指向常量的指针 ; const 修饰的是右边的内容..., 右边是 变量 , 相当于 const * 右边 , 指针常量 , 指针不能修改 ; 右边是 数据类型 , 相当于 const 修饰的是 内存中的数据 , 指针指向的内存不能被修改 ;

1.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C语言变量

    d\n", a, b, c); printf("%c %c %c\n", e, f, d); printf("%f %lf\n", fxs, dxs); }          运行结果...局部变量  概述一个函数内部声明的变量是内部变量,它只本函数内部有效。本函数之外是不能使用的,这样的变量就是局部变量。         某个函数或块的内部声明的变量称为局部变量。...局部变量函数外部是不可知的。...概述函数外部声明的就是全局变量,全局变量是定义函数外部,通常是程序的顶部。...②全局变量作用域的是整个工程。 拓展知识点 在所有的函数外部定以的变量叫做:全局变量。 全局变量是可以整个程序当中进行使用的。 当然程序当中我们尽量代码当中少用到全局变量比较。

    15710

    C语言】const修饰指针的不同作用

    const修饰变量 变量是可以修改的,如果把变量的地址交给⼀个指针变量,通过指针变量的也可以修改这个变量。...变量n是定义的整形变量,本质上是整形变量,被const修饰本质不变,但是语法发生改变,导致n无法被修改,修改会违反语法规则,一旦修改就会报错。...请看下一个章节进行讲述用const修饰指针变量来进行实现该问题。 const修饰指针变量 下面通过四个例子对比来得到关于const修饰指针变量的不同方式所得到的不同结论。...} 运行: 运行发现无法通过运行。const*左边时,意思是指针p指向的n是一个用const修饰变量,所以通过*p无法对n进行修改。...} 运行: 同样出现了报错,但是这次的报错行数p = &m;处,说明当const*右边时修饰的是指针p,使指针无法改变指向的地址。

    8810

    CC++中经const修饰的常量、常变量和普通变量的区别

    1.C89标准下的const const 修饰的类型是一个常变量,不能作为数组的下标。常变量不能作为左值。...如: const int a = 10; int b = a; //其编译的过程和一般变量编译的过程相同 //并不会把引用符号的地方替换为对应的数据 2.C++99 (1)常量:c++中,const...由图可见,普通变量生成的符号为GLOBAL,而经过const修饰的常量生成的符号是LOCAL。所以普通变量和常量作用域是不相同的。 3.要访问另外一个文件中定义的常量的方法。...定义处添加extern关键字,使其编程后生成的符号为GLOBAL,这样链接器就可以对其进行处理。...-o test.o //readelf -s test.o 可以看到,经过extern修饰的常量,进过编译生成的符号表中其作用域变为GLOBAL。

    50010

    C语言 | register定义变量

    例89:学习C语言register定义变量的用法。 解题思路:register这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。注意是尽可能,不是绝对。...因为,如果定义了很多register变量,可能会超过CPU的寄存器个数,超过容量。...C语言源代码演示: #include//头文件  int main()//主函数  {   register int i;//定义寄存器变量    int temp=0;//定义整型变量...以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~ C语言学习路线     C语言开发工具 更多案例可以go公众号:C语言入门到静通

    2.6K32

    C语言变量与常量

    跟着肯哥(不是我)学C语言变量和常量、跨文件访问、栈空间 栈空间还不清楚,期待明天的课程内容 C变量 变量(Variable)是用于存储和表示数据值的名称。...主要包括四个环节:定义、初始化、声明、使用 我刚学C语言的时候,看的网课就专门强调了定义、声明和初始化。 在看这次学习营内容的时候,我对这些内容也已经很模糊了。...变量名(Variable Name)是给变量起名称,用于程序引用该变量:由字母、数字、下划线组成,首字符不能是数字,不能与C语言内置关键字重名。...C语言内置关键字是不包含malloc的。因为学数据结构的时候经常用到,我之前以为它是的。 初始值(Initial Value)是可选的,用于给变量赋予一个初始值。...常量使用 常量使用方法有两种:直接使用、定义使用 无需定义,直接使用: int a = 1; int b = 2; int c; c = a + b + 10; // 这个10其实就是一个常量

    18620

    C语言 | register定义变量

    “要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人…万中无一” ——包租婆 这道理放在C语言学习上也一并受用。...在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历的是日积月累的学习。 那么如何学习呢?当然是每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...例89:学习C语言register定义变量的用法。 解题思路:register这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。注意是尽可能,不是绝对。...因为,如果定义了很多register变量,可能会超过CPU的寄存器个数,超过容量。...C语言源代码演示: #include//头文件 int main()//主函数 { register int i;//定义寄存器变量 int temp=0;//定义整型变量

    2.5K32

    8.2 C语言指针变量

    01怎么定义指针变量 1、一般形式 类型名 *指针变量名; 例子:int *point_1,*point_2; 左端的int是定义指针变量时必须指定的“基类型”。...指针变量的基类型用来指定此指针变量可以指向的变量的类型。 2、指针变量前面的“*”表示该变量的类型为指针变量。...5、指针变量中只能存放地址(指针),不要将一个整数赋给一个指针变量。 02怎样引用指针变量 1、给指针变量赋值。如:p=&a;指针变量p的值是变量a的地址,p指向a。 2、引用指针变量指向的变量。...如已执行“p=&a”,即指针变量p指向了整型变量a,则printf(“%d”,*p);其作用是以整数形式输出指针变量p所指向的变量的值,即变量a的值。 3、引用指针变量的值。...3、函数调用可以得到一个返回值,而使用指针变量作参数,可以得到多个变化了的值。 C语言 | 函数实现输出I love you 更多案例可以go公众号:C语言入门到精通

    1.3K2625

    C语言 | 结构体变量

    C语言结构体类型 C语言中允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体。在其他一些高级语言中称“记录”。...C语言如何定义结构体类型变量 先声明结构体类型,再定义该类型的变量 定义了结构体变量,系统会为之分配内存单元。根据结构体类型中包含的成员情况,Visual C++中占63个字节。...这种声明方式是声明类型和定义变量分离,声明类型可以随时定义变量,比较灵活。...C语言结构体变量的初始化和引用 定义结构体变量时可以对它的成员初始化,初始化列表是用花括号括起来的的一些常量,这些常量依次赋给结构体变量中的各成员。...100道C语言源码案例请去公众号:C语言入门到精通

    2.7K10

    C语言|图解指针变量

    (如下例的a)保存在一个函数的栈帧上,当一个函数执行完毕,另一个函数(如下例的stackFrame_reuse())执行时,该空间会被stackFrame_reuse()重复使用,a所使用的空间将不复存在...jptr); // 10 free(jptr); while(1); return 0; } 可以图示一下以上代码指针的传递过程: 以下图示a表示计算机内存,b表示一个函数调用时栈...(stack)上开辟的栈帧空间: 2 指针变量与数组名 数组名一定的上下文中会转换为指向数组首元素的地址,以方便指针的算术运算,如 #include int main() {...a+3是指相对于地址a,偏移sizeof(int)个字节 *(b+3) = 'x'; // b+3是指相对于地址b,偏移sizeof(char)个字节 printf("%d, %c\...); printf("%d\n",a[2][0]); // 5 } 以下代码可以用以下图示辅助理解: ref:Kyle Loudon《 Mastering Algorithms with C

    1.6K20

    初识C语言——常量、变量

    不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示。...5.常量 C语言中的常量和变量的定义的形式有所差异。 C语言中的常量分为以下以下几种: 字面常量 const 修饰的常变量 #define 定义的标识符常量 枚举常量 1....const 修饰的常变量C语言中只是语法层面限制了该变量不能直接被改变,但是本质上还是一个变量,所以叫常变量。...enum是计算机编程语言中的一种数据类型。枚举类型:实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。...为此,C语言提供了一种称为“枚举”的类型。“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。

    35810

    C语言 | auto定义变量

    “要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人…万中无一” ——包租婆 这道理放在C语言学习上也一并受用。...在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历的是日积月累的学习。 那么如何学习呢?当然是每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...例88:学习使用C语言auto定义变量的用法。 解题思路:auto自动存储类型,一般我们很少程序中显示申明变量为auto类型。...因为代码块中的变量缺省情况下就是这种类型,这种类型的变量存放于堆栈中,也就是说只有程序执行这些代码块时这种自动变量才会被创建,代码块执行结束自动变量便被释放。...C语言源代码演示: #include//头文件 int main()//主函数 { int i,num;//定义整型变量 num=2;//赋初值 for (i=0;

    2.3K42

    C 语言注释和变量详解

    C 语言中的注释 C语言中可以使用注释来解释代码并使其更具可读性。它还可以测试替代代码时防止执行。 单行注释 单行注释以两个斜杠 (//) 开头。...需要注意的是: C99 版本(1999 年发布)之前,您只能在 C 中使用多行注释。 C 语言中的变量 变量是用于存储数据值(如数字和字符)的容器。... C 语言中,有不同类型的变量(使用不同的关键字定义),例如: int - 存储整数(没有小数点),例如 123 或 -123 float - 存储带小数点的浮点数,例如 19.99 或 -19.99...; 许多其他编程语言(例如 Python、Java 和 C++)中,您通常会使用 print 函数显示变量的值。...然而,这在 C 语言中是不可能的: int myNum = 15; printf(myNum); // 什么也不会发生 要在 C 语言中输出变量,您必须熟悉称为“格式说明符”的东西。

    22820

    C语言 | 指向结构体变量的指针变量

    例40:C语言实现通过指向结构体变量的指针变量变量输出结构体变量中的信息。...解题思路:主函数中声明了struct student类型,然后定义了一个struct student类型的变量s_1,又定义了一个指针变量p,它指向一个struct student类型的对象,将结构体变量..."yan");//复制    s_1.sex='M';//赋值    s_1.score=100;//赋值    printf("学号是:%d\n名字是%s\n性别是:%c\n成绩是:%f\n",   ...s_1.sex,s_1.score); //输出结果    printf("--------------------\n"); //隔开    printf("学号是:%d\n名字是%s\n性别是:%c\...思考两个问题,怎么对结构体变量成员赋值?怎么通过指向结构体变量的指针访问结构体变量中成员? C语言 | 通过指向结构体变量的指针变量输出结构体变量中的信息 更多案例可以go公众号:C语言入门到精通

    1.8K2218
    领券