【注:本程序验证是使用vs2013版】

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#pragma warning(disable:4996) //5、const跟结构体配合使用
typedef struct MyStruct{
int a;
int b;
}MyStruct; void fun(MyStruct *p){
//指针和指向内存都可以变
p = NULL;//ok
p->a = ;//ok
} void fun1(MyStruct const *p){
p = NULL;//ok //指针可以改变
//p->a = 10;//err //指针指向不可以改变 } void fun2(MyStruct * const p){
//p = NULL;//ok //指针不可以改变
p->a = ;//ok //指向的内存可以改变
} void fun3(MyStruct const * const p){
//只可以读取
MyStruct tmp;
tmp.a = p->a;
} int main(void){
//const 修饰一个变量为只读
const int a = ;
//a = 100; //err /*
2、跟指针变量配合使用,
主要考察:指针变量和指针指向的内存,2个不同的概念
从左往右看,跳过类型,看修饰哪个字符,
如果是*,说明说明指针的指向内容不能变
如果是指针变量,说明指针的指向不能改变(指针的值不能改变)
*/
char buf[] = "asdwqfqwerqw";
const char *p = buf;//不可以改变指向的buf的内容,可以修改指针的指向
//等价于上边 char const *p = buf
//p[1] = '2';//err
p = "asdwqdq";//ok char * const p1 = buf;
p1[] = ''; //ok
//p1 = "asdwqdq";//err const char * const p2 = buf;//p3为只读,指向不能改变,指向的内存也不可以改变 /*
3、如果引用另外.c中的const变量(不常用,了解)
extern const int x;//不能再赋值,只能声明
const修饰的变量,在定义的时候必须初始化
*/ /*
4、可以通过指针修改const修饰的变量的值,
const 修饰b,只是要求不能直接操作b。
这里c语言不太严谨。
*/
const int b = ;
int *q = &b;
*q = ;
printf("b=%d", b); printf("\n");
system("pause");
return ;
}

3.02定义常量之const的更多相关文章

  1. 在php中定义常量时,const与define的区别?

    问]在php中定义常量时,const与define的区别?  [答]使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数.另外const在编译时要比define快很 ...

  2. PHP中define()和const定义常量的区别

    在PHP中可以通过define()和const两种方式定义常量可是在开发中我们应该什么时候用define()定义常量,什么时候用const定义常量? 这两种方式定义常量的主要区别是什么? 从5.3版本 ...

  3. 【Effective C++ 读书笔记】条款02: 尽量以 const, enum, inline 替换 #define

    条款02: 尽量以 const, enum, inline 替换 #define 这个条款或许可以改为“宁可以编译器替换预处理器”. 编译过程: .c文件--预处理-->.i文件--编译--&g ...

  4. PHP中定义常量的几种方式与区别

    [问]在php中定义常量时,const与define的区别? [答]使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数.另外const在编译时要比define快很 ...

  5. keil 编译器V6 定义函数在ram中运行-和在指定地址定义常量

    之前一直是用v5编译,编译速度慢,换成V6编译速度差不多快50% ,而且arm后期只维护v5编译器不在更新v5编译器.切换到V6编译器大势所趋,把之前v5且换到v6需要如下更改: 1. CMSIS包需 ...

  6. PHP 中 define() 和 const 定义常量时的区别

    自 PHP 5.3.0 起,有两种方式定义常量,使用 const 关键字或者 define() 函数:   1 2 const FOO = 'BAR'; define('FOO', 'BAR'); 这 ...

  7. const define 定义常量的区别

    1.用const定义常量在编译的时候,提供了类型安全检查,而define 只是简单地进行字符串的替换 2.const定义的常量,会分配相应的内存空间.而define没有分配空间,只是在程序中与处理的时 ...

  8. php中const定义常量

    const 常量 1.在定义时必须被初始值,2.前面不加任何修饰符3.变量名字母一般都大写4.常量可以被子类继承5.一个常量是属于一个类的,而不是某个对象的 作用:当某些值是固定不变的,就用const ...

  9. C/C++中define定义的常量与const常量

    常量是在程序中不能更改的量,在C/C++中有两种方式定义常量,一种是利用define宏定义的方式,一种是C++中新提出来的const型常变量,下面主要讨论它们之间的相关问题: define定义的常量: ...

随机推荐

  1. 设置make为内部命令

    在Windows中下载Dev-cpp,配置环境变量,在MinGW64\bin下的mingw32-make.exe改名为make.exe,即可在命令行中使用make命令.

  2. HTML Meta标签和link标签

    一.meta 标签 name属性主要用于描述网页,对应于content(网页内容)  1.<meta name="Generator" contect="" ...

  3. 【NOIP2017模拟测试(10-28)】平衡树

    平衡树解题报告 Description 小D最近又在种树,可是他的种树技巧还是很差,种出的树都长的歪七扭八,为了让树变得平衡一些,小D决定从树上删掉一条边,然后再加上一条边,使得到的仍然是一棵树并且这 ...

  4. 设置多个className

    有时候我们需要有选择地设置多个className function myComponent(props) { const myClassName = { 'aaa', {'bbb': props.ne ...

  5. Promise链式调用 终止或取消

    Promise回调分两种方法,then成功,catch失败 let promise = new Promise(function(resolve, reject){ resolve('第一次成功') ...

  6. Luogu3379 【模板】最近公共祖先(LCA)

    题面 题解 这里讲一种硬核做法. 首先\(\mathrm{dfs}\)整棵树,求出这棵树的欧拉序,然后\(\mathrm{LCA}\)问题就变成了\(\pm 1\mathrm{RMQ}\)问题. 考虑 ...

  7. 再见,Eclipse。

    阅读本文大概需要 5 分钟. 来源:cnblogs.com/ouyida3/p/9901312.html 最近,改用了 IDEA,同事都说我投敌了.当然,这些同事都是和我一样的“老”程序员.不说毕业生 ...

  8. java.lang.Thread类的静态方法sleep()和yield()的比较

    [线程让步yield()方法] yield()方法可以让当前正在执行的线程暂停,但它不会阻塞该线程,它只是将该线程从运行状态转入就绪状态. 只是让当前的线程暂停一下,让系统的线程调度器重新调度一次. ...

  9. 团队作业-Beta冲刺(2/4)

    队名:软工9组 组长博客:https://www.cnblogs.com/cmlei/ 作业博客:https://edu.cnblogs.com/campus/fzu/SoftwareEngineer ...

  10. ZooKeeper和ZAB协议

    前言 ZooKeeper是一个提供高可用,一致性,高性能的保证读写顺序的存储系统.ZAB协议为ZooKeeper专门设计的一种支持数据一致性的原子广播协议. 演示环境 $ uname -a Darwi ...