7424 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 |
---|---|---|---|---|---|---|---|---|
7425 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 |
7426 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
7427 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
其中左侧为字节的地址,右侧为字节的具体内容。
extern int i; //声明i
int j; //声明并定义j
extern int k=3.24; //定义了k
int i=2,&ri=i;//ri是一个引用,与i绑定在一起
指针与引用相比的不同点:指针本身是一个对象,允许对指针进行赋值和拷贝,指针在生命周期内可以先后指向几个不同的对象;指针在无需在定义时赋初值。
int i=42;
int *pi=&i;//pi存放变量i的地址,或者说p是指向变量i的指针,&是取地址符
int *pi2=pi;
如果指针指向了一个对象,使用解引用符(*)来访问该对象。
int i=42;
int *pi=&i;//pi存放变量i的地址,或者说p是指向变量i的指针
cout<<*p;输出42
空指针的3种形式:
int *p1=nullptr;
int *p2=0;
int *p3=NULL;//#include<cstdlib>
//file_1.cpp
extern const int bufSize=256;//定义并初始化了一个常量,该常量能够被其他文件访问
//file_1.h
extern const int bufSize;//与file_1.cpp中定义的bufSize是同一个
file_1.cpp定义并初始化了bufSize。然而bufSize是一个常量,必须使用extern加以限定使其被其他文件使用。file_1.h头文件中的声明也是由extern做了限定,其作用是指明bufSzie并非本文件所独有,他的定义将在别处出现。
#ifndef FILE_1_H
#define FILE_1_H
#include <string>
struct Student{string name;string studentNo;int agr;
};
#endif
使用using声明就无需专门的前缀。using namespace :: name;
。如using std::cin;
。头文件不应包含using声明以免产生某些冲突。
string对象
(1)在执行读取操作时,string对象会忽略开头的空白,从第一个真正的字符开始读起,直到遇见下一处空白为止。如果要读取有空白符的一整行字符串,可以使用getline函数,getline会读取到遇到换行符为止,换行符也会被读取进去,但会被丢弃。
(2)string.size()返回值是一个无符号整数。
(3)两个string对象比较时,依照字符依次比较,字典序大的字符所在的string对象更大;如果字符相同,那么长度更长的string对象更大。
(4)字面值和字面值不能相加,string对象可以和string对象或者字面值相加。字面值eg.“hello”。
-> 箭头运算符
但凡使用了迭代器的循环体,都不要向迭代器所属的容器添加元素。
数组相较于vector,其大小是确定的。数组的维度必须是一个常量表达式。
unsigned cnt=42;
constexpr unsigned tmp=42;
int arr[10]; //正确
int *ptr[tmp]; //正确,42个int型指针
int arr1[cnt]; //错误,cnt不是常量表达式
string arr3[get_size()]; //当get_size是constexpr时正确,否则错误
本文发布于:2024-01-28 03:30:45,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063838514470.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |