C语言加强

一、一些注意事项

1.typedef 使用与否区别

typedef struct person
{
	char a;
	int b;
}person
person p;//不需要struct person p;
 
struct person
{
	char a;
	int b;
}
struct person p;//没有使用typedef就需要 struct person p;

2.关于结构体指针

struct person *p;
struct person w;
struct person w1;
p=&w;//将w的地址赋值给p
p->a;//p指向a
w.a;//w的a
*p=w1;//将w1中的内容全部赋值给w

3.在不同文件中引用全局变量

a.c中定义了 int a ,想要在b.c中使用
①在a.h中声明 extern int a; 在b.c中包含头文件 a.h(可以使用,不推荐)
②在b.c中extern int a;(不推荐使用)
③定义一个get_a()函数,(推荐使用)
因此定义变量最好加上 static 修饰

4.在32位处理器中地址都是32位的

在32位处理器中,无论什么类型的指针变量,都是4字节的。
变量可读可写,必定在内存中

5.结构体中定义结构体指针

typedef struct student{
		char *name;
		int age;
		struct student *classmate;//注意classmate是一个指针
}student;
student zhangsan;
student lisi;
zhangsan.classmate=&lisi;//将李四的地址赋值给张三的classmate
zhangsan.classmate->name;//李四的名字

6.链表

typedef struct spy
{
	char *name;
	struct spy *next;
} spy,*p_spy;
spy A={"A",null};
spy B={"B",null};
spy C={"C",null};
A.next=&B;//A的next存放B的地址
B.next=&C;
p_spy head=&A;//head存放了A的地址
head->next;//head存放了A的next的地址就是B;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值