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

  • 相关阅读:
    2016.07.24
    这个月
    PL/SQL: numeric or value error: character to number conversion error
    java下double相乘精度丢失问题
    Oracle中实现find_in_set
    oracle中,改变表名和字段名的大小写
    Unknown entity XXX
    Incorrect column count: expected 1, actual 5
    负数的二进制表示
    【Android】Android单例模式及使用单例模式实现自己的HttpClient工具类
  • 原文地址:https://www.cnblogs.com/zhuy-j/p/12441061.html
Copyright © 2011-2022 走看看