zoukankan      html  css  js  c++  java
  • C语言第二次作业

    1.笔记

     2.视频中的代码列表

     

     3.存在的问题

    const关键字及其作用(用法)

    const定义只读变量的关键字,或者说 const 是定义常变量的关键字。

    说 const 定义的是变量,但又相当于常量;说它定义的是常量,但又有变量的属性,所以叫常变量。用 const 定义常变量的方法很简单,就在通常定义变量时前面加 const 即可,如:

    1. const int a = 10;

    const 和变量类型 int 可以互换位置,二者是等价的,即上条语句等价于:

    1. int const a = 10;


    用 const 定义的变量的值是不允许改变的,即不允许给它重新赋值,即使是赋相同的值也不可以。所以说它定义的是只读变量。这也就意味着必须在定义的时候就给它赋初值。
    如果定义的时候未初始化,对于未初始化的局部变量,程序在执行的时候会自动把一个很小的负数存放进去。这样后面再给它赋初值的话就是“改变它的值”了,即发生语法错误。
    用 const 修饰的变量,无论是全局变量还是局部变量,生存周期都是程序运行的整个过程。全局变量的生存周期为程序运行的整个过程这个是理所当然的。而使用 const 修饰过的局部变量就有了静态特性,它的生存周期也是程序运行的整个过程。我们知道全局变量是静态的,静态的生存周期就是程序运行的整个过程。但是用const修饰过的局部变量只是有了静态特性,并没有说它变成了静态变量虽然 const 定义的是只读变量,就相当于是定义一个常量。但是只读变量也是变量,所以 const 定义的变量仍然不能作为数组的长度。但是需要注意的是,在 C++ 中可以!C++ 扩展了 const 的含义,在 C++ 中用 const 定义的变量也可作为数组的长度。

    2)数值交换的问题(PTA 4-5)

    为什么题中执行了函数最后数值却没有交换?

    回看MOOC视频发现,老师讲的是带着*,所以指针指向的数发生了交换,而题中没有*,也就是只交换了地址,数值并未交换。

    3)整理了几个有关地址赋值自己容易搞混的语句。

    int k=1,j=2,
    *p=&k,//p现在是k的地址,它的值现在和k一样 *p现在的值是1
    *q=p;//p指针的值给q了,*q的值是1
    p=&j;//p指向j了,*p的值是2

  • 相关阅读:
    【Phalapi】新加Namespace (模块)
    【PHP】 curl 上传文件 流
    牛掰!我是这么把个人博客粉丝转到公众号的
    Stack Overflow 上 250W 浏览量的一个问题:你对象丢了
    为什么人到中年就危机了呢?
    Java 并发编程(三):如何保证共享变量的可见性?
    如果有人问你 JFinal 如何集成 EhCache,把这篇文章甩给他
    国庆佳节第四天,谈谈我月收入增加 4K 的故事
    为什么要将局部变量的作用域最小化?
    面试官:兄弟,说说基本类型和包装类型的区别吧
  • 原文地址:https://www.cnblogs.com/zhuy-j/p/12441061.html
Copyright © 2011-2022 走看看