您的当前位置:首页正文

C/C++小笔记

来源:要发发知识网
###1.函数前面不需要加上地址运算符,数组也不需要;

###2.由于任何类型的指针都可以转换为void * 类型,并且在将它转换为原来的类型不会丢失信息

int (*comp)(void *, void *)

它表明comp是一个指向函数的指针,该函数具有两个void *类型的参数,其返回值类型是int

int *comp(void *, void *)
它表明comp是函数,该函数返回一个指向int类型的指针


struct point {
    int x;
    int y;
}

struct {...} x,y,z; //声明定义,和变量声明相同

struct point pt;

printf("%d, %d", pt.x, pt.y);


struct rect {
    struct point pt1;
    struct point pt2;
}

###3.结构和函数

合法操作:作为一个整体复制和赋值,通过&取地址,访问其成员。
结构之间不能比较

至少可以通过3种可能的方法传递结构:
1.分别传递各个结构成员;
2.传递整个结构;
3.传递指向结构体的指针

struct point makePoint(int x, int y)
{
    struct point temp;
    
    temp.x = x;
    temp.y = y;
    return temp;
}

结构体用.,指向结构的指针,用->

在所有运算符中,下面4个运算符的优先级最高:".","->","()","[]"

struct {
    int len;
    char *str;
} *p;


标准输入输出
文本流由由一系列行组成,每一行的结尾是一个换行符。



###4.创建项目
1.Win32控制台程序:
初始代码模版以main为程序入口,默认情况下,只链接C++运行时库和一些核心的win32库,链接器subsystem参数为console类型
,所以编译出来的程序会有黑色的控制台窗口作为呈现标准输入(stdin)和标准输出(stdout)。

2.Win32工程:
初始代码模版实现一个简单的windows窗口,以WinMain作为程序入口,引用了win32Api头文件和库,链接器subsystem参数为windows,
所以生成的程序不带黑色的控制台,直接使用标准输入和标准输出,看不到效果。

3.mfc工程:
本质上是个win32工程,只是默认帮你引用了mfc框架的头文件和库,并且程序入口由mfc框架提供,不需要自己写。

原型:extern void *malloc(unsigned int num_bytes);
头文件#include <malloc.h>
如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL,注意,返回的是指针~~