C++ priner 学习过程中遇到的一些问题记录

第一节

编译器完成C++程序的编译

cl无法识别的问题:

系统变量Path路径添加

D:\study\vs\新建文件夹\VC\Tools\MSVC\14.30.30705\bin\Hostx64\x86

前面的X64应该是电脑的操作系统,X64应该可以兼容X86

后者X86应该是应该是编译器的选择,这里不是太清楚

然后是INCLUDE和LIB路径添加,头文件和库

D:\study\vs\新建文件夹\VC\Tools\MSVC\14.30.30705\include

D:\study\vs\新建文件夹\VC\Tools\MSVC\14.30.30705\lib\x86

再cl运行写好的文件

可能出现

LINK: fatal error LNK1104: 无法打开文件“kernel32.lib”

同理还有libucrt,uuid等

在C:/Program Files(x86)搜索kernel32.lib

注意此时会出现多个同名文件!!!他们并不一样

看对应所在文件夹如X86,arm64,X64,arm等

我们将X64文件夹下对应的kernel32,lib 拷贝

粘贴到D:\study\vs\新建文件夹\VC\Tools\MSVC\14.30.30705\lib\x86即可

P61常量与类型别名结合:(以下为解释)

const char a;
const char * b;
const char ** c;
const char *** d;
理解上面3个表达式就差不多理解了const对于指针的作用
首先,const char a,a是一个常量,不可被修改,这个好理解
后面几句这样看,const后面,到变量名之间,有几个*号,则表示const修饰的是这个变量名,前面加上同样数量的*的指向内容是常量
例如const char * b,const到b之间有一个*号,所以*b是常量 ,而b是变量
const char ** c,const到c之间有两个*号,所以**c是常量 ,而*c和c都是变量
const char *** d同理,***d是常量 ,**d是变量,*d是变量,d也是变量

再来看更复杂的
const char * const g;
const char * const ** f;
上面的声明,首先看g的声明,第一个const后面有一个*号,所以*g是常量,第二个const后面是g,没有*,所以g也是一个常量
再看f的声明,第一个const后面有三个*号,所以***f是常量 ,第二个const后面有两个*号,所以**f也是常量 ,而*f和f因前面已经没有const修饰,所以*f和f都是变量


再来看你的图片上的定义
typedef char *pstring
const pstring a;
a到底是常量 还是变量,*a到底是常量还是变量?
因为const后面没有*,所以a是一个常量,而a的类型是pstring,pstring又是char *,所以a是一个指针,指向的是char型
const pstring * p
这里,const后面有一个*,所以*p是常量,也就是p指向的是一个常量 ,而这个常量是pstring类型,也就是一个char指针

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值