1.C语言里面没有String类型
可以用char str[]; 来定义
c语言包含了赋值:strcpy(),拼接:strcat()函数操作字符串
char str1[20] = "hello";
char str2[] = "world";
char str3[20];
// 复制字符串,把str1中字符串赋值给str2
strcpy(str3, str1);
printf("str3: %s\n", str3);
// 拼接字符串
strcat(str3, " ");
strcat(str3, str2);
printf("str3: %s\n", str3);
2.结构体struct
考研中常用typedef struct定义结构体
#include<stdio.h>
#include<stdlib.h>
typedef struct {
char name[20];
char sex[10];
int height;
int weight;
}human;//别名,定义时候可以省略struct
int main() {
human h1;
h1.height = 180;
h1.weight = 130;
strcpy(h1.name, "帅哥");
strcpy(h1.sex, "男");
printf("%s\n", h1.name);
printf("%s\n", h1.sex);
printf("%d\n", h1.height);
printf("%d\n", h1.weight);
return 0;
}
3.结构体指针
考研(结构体指针)
在这两个声明中,typedef关键字用来给struct LNode定义一个新的类型名,即LNode。同时,还定义了一个指向struct LNode类型的指针类型名为LinkList。
这两个声明的区别在于,第一个声明是用LNode来定义结构体类型和结构体指针类型,而第二个声明则是用LinkList来定义结构体指针类型。这两种方式定义的类型名称可以互相替换使用,但是,它们对于编程风格和代码可读性的影响是不同的。
第一种声明方式可以在定义结构体变量时直接使用LNode作为变量类型名,这样可以使代码更加简洁易读。例如:
LNode node1; // 定义LNode类型的结构体变量
LNode *p = &node1; // 定义LNode类型的结构体指针变量
第二种声明方式虽然可以减少类型名称的使用,但是也可能会使代码变得更加难以理解。例如:
LinkList node1; // 定义LinkList类型的结构体指针变量
LinkList node2 = NULL; // 另一种定义方式,LinkList可以看作是LNode*
因此,选择使用哪种方式声明结构体类型和指针类型,应该根据代码的实际情况和个人编程习惯来决定。
#include<iostream>
#include <string>
using namespace std;
typedef struct LNode{
int data;
struct LNode* next;
}LNode, *LinkList;
int main()
{
LinkList L = (LinkList)malloc(sizeof(LNode));
LNode* L2 = (LNode*)malloc(sizeof(LNode*));
L2->data = 1222;
L->data = 12;
L->next = L2;
printf("%d\n", L->next->data);
cout << L->next->data << endl;
//cout << L->next->data << endl;
system("pause");
return 0;
}
正常学习结构体指针
是指向结构体的指针变量。它允许程序员使用指针来访问和操作结构体中的数据成员。以下是一些有关结构体指针的常用操作:
(1)声明结构体指针变量
要声明结构体指针变量,必须在指针变量名前加上星号(*)符号,并将其指向结构体类型。例如:
struct Person {
char name[50];
int age;
float height;
};
struct Person *personPtr;
这将声明一个名为personPtr的指向Person结构体类型的指针变量。
(2)分配内存
在使用结构体指针之前,必须先为其分配内存空间。可以使用C标准库函数 malloc() 来动态分配内存。例如:
personPtr = (struct Person*) malloc(sizeof(struct Person));
这将为‘personPtr’指向的结构体分配内存空间。可以使用‘sizeof’运算符来计算结构体类型的大小。
(3)访问结构体成员变量
要访问结构体指针所指向的结构体中的成员变量,可以使用箭头运算符(->)。例如:
strcpy(personPtr->name, "Tom");
personPtr->age = 25;
personPtr->height = 1.8;
这将为personPtr指向的Person结构体变量的name,age和height成员变量分别赋值。
(4)释放内存
使用完结构体指针后,必须释放它所指向的内存空间,以避免内存泄漏。可以使用free()函数来释放动态分配的内存。例如:
free(personPtr);
这将释放personPtr指向的内存空间。
以上是一些基本的结构体指针操作。结构体指针还可以作为函数参数和返回值使用,以便在函数之间传递结构体数据。