C语言知识点积累

不怕学得慢,就怕不积累,在这里记录下来一些自己遇到的小问题。

1.C语言中的结构体声明、定义与使用积累:

(1)C语言与C++编译规则下对结构体的定义方法不同,C语言定义为struct A{};的结构体声明变量时必须使用struct A var;的方法,而C++下同样定义方法声明变量只需要A var;即可。

(2)在C++编译规则下使用结构体时可以像类一样使用结构体的声明进行预定义,例如:在a.h中定义的typedef struct a{}A;,在b.h中定义typedef struct b{A* var_a;}B;时不需要包含a.h的头文件,而可以使用结构体A的声明代替,即:struct A;

(3)使用typedef struct定义结构体的效果为:例如 typedef struct a{}A;则有struct a == struct A;(别名方法)

(4)定义结构变量的一般格式为:

struct 结构名

{
类型 变量名;
类型 变量名;
...
} 结构变量;

结构名是结构的标识符不是变量名。



另一种常用格式为:

typedef struct 结构名

{
类型 变量名;
类型 变量名;
...

} 结构别名;

另外注意: 在C中,struct不能包含函数。在C++中,对struct进行了扩展,可以包含函数。

2.在C/C++程序中,在main函数的return之后,还是可以执行一些特定的函数,我们可以用atexit()来注册需要在程序终止时调用的函数。这里要注意,如果一个函数被多次登记,那么该函数也将多次的执行。

 3.C语言中通过指针与"++"操作修改指向数据时要注意运算顺序的问题,如:

int    num = 0;

int* numPtr = #

*numPtr++; //错误,numPtr后移

(*numPtr)++; //正确,numPtr指向的值加1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值