文档章节

第10天C语言(12):const关键字

lyh2017iOS
 lyh2017iOS
发布于 2017/07/08 10:09
字数 517
阅读 2
收藏 0

#pragma mark const关键字 ###pragma mark 概念

/*
 如果const 写在指针类型的左边, 那么意味着   指向的内存空间的值不能改变   ,但是指针的指向是可以改变
 如果const 写在指针的数据类型和 * 号之间, 那么意味着   指向的内存空间的值不能改变  ,但是指针的指向是可以改变
     const int *p = #
    int const *p = num;
    
 如果const 写在指针的右边 (数据类型 * const), 那么意味着 指针的指向不可以改变   ,但是指向指针的存储空间中的值可以改变
     int * const p =  #
 
 规律:
 如果const 写在指针变量名的旁边,那么指针的指向不能变,而指向的内存空间的值可以变 (说明修饰的是p 修饰了指针的指向 所以指针的指向不能变)
 如果const 写在数据类型的左边或者右边, 那么指针的指向可以改变, 但是指向的内存空间的值 不能改变  (说明修饰的是 * 所有*xx 不能变)
 */

###pragma mark 代码

#include <stdio.h>
int main()
{

    /*
    const char *name = "lyh";
    printf("name = %s\n",name);
    name = "lys";
    printf("name = %s\n",name);
     */
    
    int num = 10;
    int *p = #
//    const int *p = #
//    int const *p = num;
//    int * const p =  #
    *p = 998;   // 修改了指针指向的内存空间中存储的值
    printf("&num = %p\n",&num);
    printf("p = %p\n",p);
    printf("num = %d\n",num);

    int age = 30;
    p = &age;   // 修改了指针的指向
    printf("&age = %p\n",&age);
    printf("p = %p\n",p);
    return 0;
}

void test()
{
#warning const对变量只读不可写 const的写法
    
    //默认情况下 变量是可读可写的
    //const 对基本数据类型的作用,可以让基本数据类型的变量变为常量
#warning const 的写法
    // const 有两种写法 1.写在数据类型的左边 2.写在数据类型的右边
    //    const int num = 10; // 当变量加上了 const 说明改变量只读
    
    int const num = 10; // 当变量加上了 const 说明改变量只读
    printf("num = %i\n",num);
    
    //    num = 55;
    printf("num = %i\n",num);
}

© 著作权归作者所有

共有 人打赏支持
lyh2017iOS
粉丝 1
博文 357
码字总数 137380
作品 0
朝阳
私信 提问
二十三、typedef

说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 这讲介绍C语言中很...

长平狐
2013/03/28
141
0
或许有一两点你不知的C语言特性

关键字篇 volatile关键字 鲜为人知的关键字之一volatile,表示变量是'易变的',之所以会有这个关键字,主要是消除编译优化带来的一些问题,看下面的代码 1 int a = 8;2 int b = a;3 int c = ...

吕亚辉
2015/08/02
0
0
const static在c c++中的作用

一.C语言中的const const是C语言中保留的一个关键字,它用来限定一个变量是只读的,即不可变的。程序中使用const可以在一定程度上提高程序的健壮性,但是程序中使用过多的const,可能在对代码...

y_x
2011/11/17
0
0
C语言嵌入式系统编程修炼之内存操作

这是我13年前创作和发表在互联网上的文章,这么多年过去了,这篇文章仍然在到处传播。现在贴回Linuxer公众号。 全文目录: C语言嵌入式系统编程修炼之道——背景篇 C语言嵌入式系统编程修炼之...

jus3ve
2017/12/29
0
0
C语言精要总结-指针系列(二)

此文为指针系列第二篇: C语言精要总结-指针系列(一) C语言精要总结-指针系列(二) 指针运算 前面提到过指针的解引用运算,除此之外,指针还能进行部分算数运算、关系运算 指针能进行的有...

吕亚辉
2017/06/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

详解webpack-dev-server的简单使用

webpack-dev-server是一个小型的Node.js Express服务器,它使用webpack-dev-middleware来服务于webpack的包,除此自外,它还有一个通过Sock.js来连接到服务器的微型运行时. 我们来看一下下面的...

前端攻城老湿
22分钟前
0
0
深度解析JavaScript事件对象

这篇文章主要介绍了JavaScript事件对象,结合实例形式深入分析了javascript DOM、IE及其他浏览器相关事件对象操作技巧与注意事项,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可...

前端攻城小牛
23分钟前
0
0
Android下拉刷新开源框架

添加依赖 //下拉刷新 implementation 'com.jcodecraeer:xrecyclerview:1.5.9' xml引用 <com.jcodecraeer.xrecyclerview.XRecyclerView android:id="@+id/act_xrecycler......

lanyu96
30分钟前
0
0
Linux内核中ioremap映射的透彻理解

几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两...

天王盖地虎626
34分钟前
1
0
Collection中的之retainAll()方法的理解

//在jdkapi中的方法,说明返回值为boolean类型, boolean retainAll(Collection<?> c) ; //api中给的注释 //Retains only the elements in this list that are contained in the specified......

南桥北木
36分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部