宽字元:wchar_t 没有具体定义位数,但通常都是以0x00**表示,在内存中以 ** 00形式存储,因此用strlen不能读取字符长度
C语言中汉字需要用两个字节存储,字符串结尾通常会以/0来做标志,因此开数组的时候需要多开一位,sizeof的话也会多显示一位,输出汉字需要用连续两位ASCII码表示printf("%c%c",206,210);可以输出我,这里有篇文章是关于编码的来历的:这里
window程序设计不同于普通编程,windows编程是基于事件驱动编程模型,应用程序通过处理操作系统发来的消息相应事件,而一般编程则是从头到尾依次执行,中间会调用函数
windows的API函数封装在dll(动态链接库)中
静态变量
在介绍静态变量之前,先来介绍局部变量和全局变量。变量按照作用范围的不同可以划分为局部变量和全局变量。局部变量是指在函数内定义的变量,在函数调用结束后,局部变量将消失。而全局变量是指在函数体外定义的变量,它的生命期随着程序的结束而结束。静态变量主要是针对局部变量的,如果定义一个静态的局部变量,它的生命期在函数调用结束后会依然存在,在下次调用函数时,会依然保存上一次函数调用结束之后的值。并且,对于静态变量只执行一次初始化(无论函数调用多少次)。在C++中,静态变量是使用static关键字来定义的。
用static修饰后,输出0,1,2,3,。。。如果不用的话只会输出00000
外部变量:
外部变量用于告诉编译器在其他文件的全局区域存在一个全局变量,目的是在当前的文件中能够访问这个全局变量(意思就是说使其他文件也能访问它)
共用体Union,和结构体类型定义相似,但在同一时刻只能使用共用体中的一个成员,因为共用体所有成员共享相同的内存空间
内联函数 inline
所谓内联函数是指对于程序中出现函数调用的地方,如果函数是内联函数,则编译器直接将函数代码赋值到函数调用的地方,这样省去了跳转到函数定义的地方执行代码,然后再返回到调用函数处的一个过程,提高程序的执行效率。但是内联函数的一个最大缺点是增加了代码的程序,可以想下,如果一个内联函数有上千行的代码工程序中多次出现该函数的调用,执行程序的代码将是多么庞大。但是,对于代码较少、经常需要调用的函数,将其定义为内联函数,则可以显著提高程序的执行效率。
对象是类的实例化
public,protected,private
public编辑的成员(成员和方法)称为共有成员,public成员可以在程序的任何地方进行访问。protected标记的保护成员,该成员只能在该类和该类的派生类(子类)中访问,初次之外,程序的其他地方不能访问保护成员。private标记的成员称为私有成员,该成员只能在该类中访问,派生类以及程序的其他地方均不能访问私有成员
Union
输出266

#include<cstdio> union { int i; char x[2]; }a; int main() { a.x[0] =10; a.x[1] =1; printf("%d",a.i); }
用C++实现 strlen和strcpy

#include <assert.h> #include <stdio.h> int strlen(const char*str ) { assert( str != NULL ); int len = 0; while( (*str++) !='