文档章节

第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
138
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语言精要总结-指针系列(二)

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

吕亚辉
2017/06/30
0
0
C语言嵌入式系统编程修炼之内存操作

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

jus3ve
2017/12/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

验证码

response生成验证码 验证码的作用:防止恶意注册、攻击等 网站上看到的验证码,实际上都是一些图片,而这些图片都是程序(Servlet)生成的! package day19.test; import java.awt.Color; i...

码农屌丝
40分钟前
0
0
day147-2018-11-14-英语流利阅读-待学习

《毒液》刚刚上映,创造漫威宇宙的人却走了 雪梨 2018-11-14 1.今日导读 中国的金庸创造了侠义英雄和江湖传奇,而大洋彼岸的斯坦·李也同样创造了一个绚烂璀璨的漫威宇宙,他构思的每个超级英...

飞鱼说编程
42分钟前
3
0
CentOS 安装PHP5和PHP7

安装PHP5 下载解压二进制包 [root@test-a src]# cd /usr/local/src/[root@test-a src]# wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2[root@test-a src]# tar jxvf php-5.6......

野雪球
今天
4
0
修改jfinal默认的redis序列化方式

jfinal 越来越流行, jfinal的redis插件默认的序列化方式是fst。 但是系统中其他项目中用的是spring data redis中的StringRedisTemplate,所有的value都是通过gson转化成String放进去的。 直接...

采蘑菇的大叔
今天
1
2
windows上类似dnsmasq的软件Dual DHCP DNS Server

官网地址:http://dhcp-dns-server.sourceforge.net/官网定向的下载地址:https://sourceforge.net/projects/dhcp-dns-server/files/ 设置参考地址:http://blog.51cto.com/zhukeqiang/18264......

xueyuse0012
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部