C++ 如何更改结构指针的单个成员的值? #包括 #包括 使用名称空间std; 结构学生{ 国际贸易编号; 煤焦级[14]; }; 无效集(结构学生*学生); 无效显示(结构学生); int main(){ 结构学生harry={975,“ABC”}; 集(&harry); 显示器(哈利); } 无效集(结构学生*学生){ 结构学生jim={306,“BBB”}; *student=jim;//这很有效 //*student.no=306;//不起作用 } 无效显示(结构学生){ cout
如果有指向结构的指针,则应使用C++ 如何更改结构指针的单个成员的值? #包括 #包括 使用名称空间std; 结构学生{ 国际贸易编号; 煤焦级[14]; }; 无效集(结构学生*学生); 无效显示(结构学生); int main(){ 结构学生harry={975,“ABC”}; 集(&harry); 显示器(哈利); } 无效集(结构学生*学生){ 结构学生jim={306,“BBB”}; *student=jim;//这很有效 //*student.no=306;//不起作用 } 无效显示(结构学生){ cout,c++,C++,如果有指向结构的指针,则应使用->访问其成员: #include <iostream> #include <cstring> using namespace std; struct Student { int no; char grade[14]; }; void set(struct Student* student); void display(struct Student student); int main( ) {
->
访问其成员:
#include <iostream>
#include <cstring>
using namespace std;
struct Student {
int no;
char grade[14];
};
void set(struct Student* student);
void display(struct Student student);
int main( ) {
struct Student harry = {975, "ABC"};
set(&harry);
display(harry);
}
void set(struct Student* student){
struct Student jim = {306, "BBB"};
*student = jim; // this works
//*student.no = 306; // does not work
}
void display(struct Student student){
cout << "Grades for " << student.no;
cout << " : " << student.grade << endl;
}
这是做
(*student)的语法糖。no=306;
。你的代码不起作用的原因是。没有括号,
的优先级高于*
,你的代码相当于*(student.no)=306;
如果有指向结构的指针,则应使用->
访问其成员:
#include <iostream>
#include <cstring>
using namespace std;
struct Student {
int no;
char grade[14];
};
void set(struct Student* student);
void display(struct Student student);
int main( ) {
struct Student harry = {975, "ABC"};
set(&harry);
display(harry);
}
void set(struct Student* student){
struct Student jim = {306, "BBB"};
*student = jim; // this works
//*student.no = 306; // does not work
}
void display(struct Student student){
cout << "Grades for " << student.no;
cout << " : " << student.grade << endl;
}
这是做
(*student)的语法糖。no=306;
。你的代码不起作用的原因是。没有括号,
的优先级高于*
,你的代码相当于*(student.no)=306;
运算符*
的优先级非常低,因此必须使用括号控制计算:
student->no = 306;
尽管它始终可以按以下方式进行:
(*student).no = 306;
在我看来,这要容易得多。
运算符*
的优先级非常低,因此您必须用括号控制求值:
student->no = 306;
尽管它始终可以按以下方式进行:
(*student).no = 306;
在我看来,这要容易得多。你应该使用
student->no = 306;
虽然我们正在进行,但将结构按值传递给函数并不是一个好的实践
student->no = 36
//使用typedef它可以避免在任何地方编写struct。
类型定义结构{
国际贸易编号;
//此处使用常量字符*代替数组。
常量字符*等级;
}学生;
无效集(学生*学生);
无效显示(学生*学生);
int main(){
//分配dynmaic。
学生*哈里=新学生;
哈利->否=957;
harry->grade=“ABC”;
集(哈利);
显示器(哈利);
}
无效集(学生*学生){
学生->否=306;
}
无效显示(学生*学生){
不能你应该使用
student->no = 306;
虽然我们正在进行,但将结构按值传递给函数并不是一个好的实践
student->no = 36
//使用typedef它可以避免在任何地方编写struct。
类型定义结构{
国际贸易编号;
//此处使用常量字符*代替数组。
常量字符*等级;
}学生;
无效集(学生*学生);
无效显示(学生*学生);
int main(){
//分配dynmaic。
学生*哈里=新学生;
哈利->否=957;
harry->grade=“ABC”;
集(哈利);
显示器(哈利);
}
无效集(学生*学生){
学生->否=306;
}
无效显示(学生*学生){
我非常想让你看看OOP是如何用C++改变的。我强烈建议你看看OOP是如何用C++改变的。