1.书本上的gets函数,在C++14标准以后被移除,取而代之的是相同用法的
gets_s();
2.书本上的strcpy函数,同样在vs中会被推荐使用更为安全的strcpy_s函数。
该函数有两参数和三参数的版本。三参数的用法如下:
errno_t strcpy_s(
char *strDestination,
size_t numberOfElements,
const char *strSource
);
第一个参数是目的字符串
第二个参数是缓冲区大小。可以设置成源字符串的长度+1
第三个参数是源字符串
例如
char * str;
str = new char[20];
strcpy_s(str, strlen(str1)+1, str1);
3.下标
array[index];
*(array+(index));
下标的引用实际上是以后面这种形式实现的。
4.L R
左值:可以被赋值,必须指定了内存中的某个特定位置
右值:可以赋值给别人,必须指定了一个值
例如:
a = b + 25;
//这里a是左值,b+25是右值
//这里a可以调换当作右值,但b+25不能调换当作左值。
//因为b+25并未指定一个特定的位置
5.*操作符:
*操作符必须要和指针一起使用,用于访问指针指向的值,即访问指针变量所表示的地址
当后面的指针是指针变量a:
int *a;//指针变量a
*a的 操作符使机器指向指针变量a的存储的位置(地址)。
当a作为左值时,这个表达式指定了需要修改的位置(也就是指针变量a存储的值对应的地址)
*a=20;
//指针变量a的值变成了20
//因此,指针变量a指向的地址变成了内存中某个地址值是20的地址
当*a作为右值时,它就提取当前储存于这个位置的值
&操作符产生变量的地址
int b;//变量b
/***/
a = &b;
//a的值变成了b的地址的值
//因此,指针变量a指向的地址变成了内存中b的地址