Week Eight
数组、字符串
一. 给一个字符数组赋值 char a[ 6] = “china” 与char a[ ]={‘c’,’h’,’i’,’n’,’a’}
所有字符串都以 \0 为结尾
不能用赋值语句将一个字符串常量或字符数组直接赋给另一个字符数组;
不可以用关系运算符对字符数组中的字符串进行比较。
二.
字符输出
当需要输出带空格的字符时用cin.get()函数可以做到,但用cin输入输出自动略过空格。
Cin.get ()函数可以把空格和回车都当作字符打出来。
使用cin.get( char )也是同理,带参数输入输出(方便)
字符输入
输入字符可调用cin.get()函数;
加入使用cin.get( ch , 10, ‘\n’) 意思是指定终止符为‘\n’,遇到\n则停止读取。
cin.getline(ch,10, ‘\n’) 同理
(代码头文件#include <iostream>)
指针
- 把某个变量的地址称为指向该变量的指针。
- 用(&)取地址,在变量前加上&例如&n;地址长度为四个字节;
- 拿到一个地址后,加上一个指针字符 * ;一个变量c,指针字符*&c等价于c;
- 定义 一个指针变量 int *变量;其中int是基变量,即指针变量所指向的变量的基类型;
-
指针变量只能存放地址;
*pointer 指的是“pointer所指向的存储单元的内容”,而这个存储单元的内容就是c;
7. 关系运算符先后顺序有区别
8. 指针变量pointer ++ 时,等价于地址++,即同时增加四个字节。
整形、实型元素占四个字节、字符元素占一个字节,所以当指针变量++的时候,同理增加字节数;
9. 不同类型的指针变量可以直接相互赋值;
不同类型的指针不可以直接相互赋值;
10. 对于已正确定义的二维数组a, *(a[i]+j)与a[i][j]的含义相同
a[i][j]是第i行(0算起)第j列(0算起)的元素值。a+i是第i行的行指针,那么*(a+i)就是第i行第0个元素的指针,
自然*(a+i)+j就是第i行的第j个元素的指针了,最后通过这个指针用*取出来的值*(*(a+i)+j)不就是第i行第j列的值。
11. 字符串常量在内存中的存放位置由系统自动安排。
字符串常量实质上是一个指向该字符串首字符的指针常量。