第十六天C进阶:gets_s;strcpy_s;下标;左值与右值;操作符*,&

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的地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值