1、C++中的“声明符”是什么?
声明符是用来指定变量或函数的类型、名称和属性的符号。例如:
int list[20];
声明了一个名为 list 的整型数组,它有 20 个元素。int是类型说明符,list[20]是声明符char *cp;
声明了一个名为 cp 的指向字符的指针1。*cp是声明符double func( void );
声明了一个名为 func 的函数,它没有参数,返回一个双精度浮点数。func( void )声明符
2、因为引用不是对象,没有实际地址,所以不能定义指向引用的指针。
这句话的意思是,引用不是一个独立的变量,它只是某个变量的别名,所以它没有自己的地址,也不能被取地址。指针是一个变量,它存储的是一个地址,指向内存的一个存储单元,所以它有自己的地址,也可以被取地址。举个例子:
int a = 10; // 定义一个整型变量 a
int &b = a; // 定义一个引用 b,指向 a
int *c = &a; // 定义一个指针 c,指向 a 的地址
int *d = &b; // 定义一个指针 d,指向 b 的地址
int **e = &c; // 定义一个指针 e,指向 c 的地址
// int *&f = &b; // 错误!不能定义指向引用的指针
cout << "a = " << a << endl; // 输出 a 的值
cout << "b = " << b << endl; // 输出 b 的值,等于 a 的值
cout << "c = " << c << endl; // 输出 c 的值,等于 a 的地址
cout << "d = " << d << endl; // 输出 d 的值,等于 b 的地址,也等于 a 的地址
cout << "e = " << e << endl; // 输出 e 的值,等于 c 的地址
// cout << "f = " << f << endl; // 错误!不能输出 f 的值
cout << "&a = " << &a << endl; // 输出 a 的地址
cout << "&b = " << &b << endl; // 输出 b 的地址,等于 a 的地址
cout << "&c = " << &c << endl; // 输出 c 的地址
cout << "&d = " << &d << endl; // 输出 d 的地址
cout << "&e = " << &e << endl; // 输出 e 的地址
// cout << "&f = " << &f << endl; // 错误!不能输出 f 的地址
运行结果:
a = 10
b = 10
c = 0x7ffeefbff5ac
d = 0x7ffeefbff5ac
e = 0x7ffeefbff5a0
&a = 0x7ffeefbff5ac
&b = 0x7ffeefbff5ac
&c = 0x7ffeefbff5a0
&d = 0x7ffeefbff5a8
&e = 0x7ffeefbff598
从上面的例子可以看出,引用 b 和变量 a 是同一个东西,它们的值和地址都相同;而指针 c 和 d 是不同的东西,它们的值是 a 的地址,但它们自己也有不同的地址;而 e 是指向指针的指针,它的值是 c 的地址,它自己也有不同的地址。所以,引用和指针是有本质区别的。
3、什么是声明语句?
声明语句是一种用来为变量、常量、函数、类型或命名空间等实体命名和指定类型的语句12345。声明语句可以出现在不同的编程语言中,如C、C++、Java、Visual Basic等,但具体的语法和规则可能有所不同。例如:
// Java 中的声明语句
int x; // 声明一个整型变量 x
String s = "Hello"; // 声明一个字符串变量 s,并赋值为 "Hello"
final double PI = 3.14; // 声明一个常量 PI,并赋值为 3.14
void print(String msg) { // 声明一个函数 print,参数为字符串 msg
System.out.println(msg); // 函数体
}
2.4.2
2.4.3
2.6.3
6.1.3
6.4
15.2.3
19.2
标签:cout,指向,int,18,C++,地址,P47,声明,指针 From: https://www.cnblogs.com/xzit201802/p/17690336.html