【注:本程序验证是使用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. CF1237C2 【Balanced Removals (Harder)】

    这么妙的题怎么没人发题解啊 首先这是三维的,我们可以对其进行降维打击 先考虑一维怎么做? 我们可以对其该维坐标进行排序,按照顺序输出,可能会多余一个 那拓展到二维呢? 我们可以把它转化成一维,分成很多 ...

  2. 每日Android一问等你来解答-什么是Activity的生命周期?

    关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己. 本篇文章同步微信公众号 欢迎大家关注我的微信公众号:「醉翁猫咪」 什么是Activity的生命周期? 生命周期: 对于生命周期我们 ...

  3. 03-树2 List Leaves (25 分)

    Given a tree, you are supposed to list all the leaves in the order of top down, and left to right. I ...

  4. Web前端开发规范 之html命名规范

    1.文件名称命名规则 统一用小写的英文字母.数字和下划线,不得包含汉字空格和特殊符号 2.索引文件命名 一般用index为名字  如index.html  index.jsp 3.各子页面的命名规则 ...

  5. 第07组 Alpha冲刺(6/6)

    队名:摇光 队长:杨明哲 组长博客:求戳 作业博客:求再戳 队长:杨明哲 过去两天完成了哪些任务 文字/口头描述:博客生成的逻辑 展示GitHub当日代码/文档签入记录:(组内共用,已询问过助教小姐姐 ...

  6. LDD3源码分析之poll分析

    编译环境:Ubuntu 10.10 内核版本:2.6.32-38-generic-pae LDD3源码路径:examples/scull/pipe.c  examples/scull/main.c 本 ...

  7. python @classmethod和@staticmethod区别

    python 类方法和静态方法区别 python @classmethod和@staticmethod区别 Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢 ...

  8. UnicodeEncodeError: 'latin-1' codec can't encode characters,python3 中文乱码

    UnicodeEncodeError: 'latin-1' codec can't encode characters in position 9-13: ordinal not in range(2 ...

  9. 通过SOCKS代理渗透整个内网

    https://blog.csdn.net/SouthWind0/article/details/83111044 通过SOCKS代理渗透整个内网 1.背景 经过前期的渗透工作,我们现在已经成功找到了 ...

  10. 【docker】 yaml.scanner.ScannerError: mapping values are not allowed here in "./docker-compose.yml", line 60, column 35

    在启动docker-compose 时候 报错了 命令: docker-compose up -d && docker-compose logs -f 错误代码: 解决 出现这个错误的 ...