###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,注意,返回的是指针~~
C/C++小笔记
来源:要发发知识网