171012—C++课三:指针&其他杂碎概念整理。

来源:互联网 发布:淘宝零食代销货源 编辑:程序博客网 时间:2024/05/29 18:15

楔子:昨晚和同学交流,发现自己对一些本应早早掌握的基础概仍旧模糊。

一.基础知识整理:
1. C++使用的alphabet是ASCII标准码的子集。
2.C++使用的词汇分为五类:关键词、标识符、运算符、分隔符、常数。
关键词是系统预定义的一种特殊的标识符;
标识符是用来起名字的东西;
其他概念可字面理解。
3.C++所产生、处理的数据可分为:整型、浮点型、字符型;

  • 整型数据为整数,可用int(4B)、bool、enum定义。C++支持十进制,八进制和十六进制示数方 法。
    十进制:可带正负号的整数,不可以0开头。
    八进制:正整数,以0为前缀。
    十六进制:正整数,以0x为前缀

  • 浮点型数据为实数,可以带小数。可用float(4B)、double(8B)定义,二者区别在于示数范围。

  • 字符型数据为字符,长得可好看了 得单引号加字符才行:‘A’(留白:此处对控制符等概念理解仍不足。)

二.指针及相关概念。
指针即地址,地址即指针。

#include<iostream>using namespace std;int main(){    int a=10;                 //定义普通变量a    int *p;                   //定义指针型变量p    p=&a;                     //给指针变量赋值:a的地址。    cout<<a<<endl;           //显示普通变量a的值     cout<<&a<<endl;          //取普通变量a的地址值     cout<<*(&a)<<endl;      //通过地址访问,获得变量a的值     cout<<p<<endl;         //取指针变量p的值,该值为变量a的地址值     cout<<*p<<endl;       //通过指针P进行间址访问,获得变量a的值 .+}

编译结果符合预期
表达意义总结如下:
1 .int *p 为定义一个指针型变量。
2.而 *p 表示指针P所指的那个地址,也就是那个内存,即那个内存里存放的内容,那个变量对象的值。
3. &a 表示取变量a的地址,称为取址运算,&此处为取址运算符;
4. *(&a) 表示通过地址访问变量a;(叫啥?)
5. p 此时已被赋值为a的地址,它是个变量,它是个指针型变量,它只能放地址,现在放了a的地址;
6. *p出现时,表示为指针所指的那个地址里的那个变量对象的值。
P.S.对象跟内容有多大区别呢?无非表述上的区别吧。

我们知道,对对象的访问有通过对象名以及对象地址访问。分别对应着:

  1. 对象名:a
  2. 对象地址:*(&a)

而所谓的间址访问,即通过 指针所指 实现访问。即*p。
那么,从逻辑上,便有
a=*(&a)=*p 而p=&a。

明日计划:表达式整理。

原创粉丝点击