c学习笔记
- 格式:docx
- 大小:198.20 KB
- 文档页数:11
endl换行符,也是std成员函数4).io流运算cout控制台输出—屏幕上终端窗口,带缓冲<<插入运算符cin控制台输入—键盘>>提取运算符5).名字空间Std:标准c++库所提供一切函数、对象、类型都隶属于std名字空间。
::-作用域限定符---名字空间“的”某个对象。
+= -=名字冲突:看作用域。
同一作用域不可使用相同名字。
----解决方法:成员前加名字空间名,中间::3.名字空间namespace 名字空间名{名字空间成员1;名字空间成员2;//名字空间成员可以是变量、函数、类型}名字空间名::名字空间成员1名字空间合并:同一个名字空间可以分别书写在不同的namespace子句中,只要它们的名字相同,仍然会被编译器识别为同一个名字空间。
Namespace名字空间名{名字空间成员1;}namespace名字空间名{名字空间成员2;}名字空间成员的声明和定义可以分开写,但是定义部分需要借助作用域限定符“::”指明所定义的成员隶属于哪个名字空间。
名字空间指令:using namespace名字空间名;名字空间指令以后的代码,对名字空间中的所有成员可见,可以直接引用,无需作用域限定符。
使用时要注意不要引入新的名字冲突。
名字空间声明:using名字空间名::名字空间成员;名字空间声明用于将名字空间中的特定标识符引入当前作用域,可以省略作用域限定符,直接引用之。
使用时注意不要因此引入新的名字冲突。
无名名字空间:不隶属于任何名字空间的标识符,编译器就将其缺省地放入无名名字空间。
对于无名名字空间中的成员,可以直接使用“::”进行访问。
名字空间允许多层嵌套,访问时需要逐层分解。
可利用名字空间别名简化名字空间嵌套路径的书写形式。
Using只能看里面一层。
4.结构、联合和枚举1)所有的类型关键字在声明变量时都可以省略。
struct Date{ //Date结构名int year; //成员变量(成员表列)(类型说明符成员名)int month;int day;void show(void)//成员函数{}};Int main(void){ //全局变量Date d = {2016,8,2},*e = &d;//e是指向d的指针d.show(); //“.”直接成员访问运算符e->show (); //“->”间接成员访问运算符return 0;}struct Date d = {2016,8,2};//C/C++Date d = {2016,8,2};//C++ //类型关键字省略2)C++中结构体可以包含函数(一个int四个字节,函数不放变量中,放代码区)成员函数的调用,前面要写“.”“->”定义结构体时不能同时初始化!3)C++中增加了匿名联合。
C语言谭浩强版笔记第一章程序设计和C语言1、计算机能直接识别和接受的二进制代码称为机器指令,机器指令的集合就是该计算机的机器语言。
2、语言的发展历史:①机器语言②符号语言③高级语言3、高级语言的发展:①非结构化语言②结构化语言③面向对象的语言4、C语言的祖先是BCPL语言5、在字符串中的//和/*都不作为注释的开始。
而是作为字符串的一部分。
【但是在vc++6.0中//显示编译错误】6、不要以为在max函数中求出最大值z后就会自动地作为函数值返回调用处,必须用return语句指定将哪个值作为函数值。
也不要不加分析地在所有函数后面都写上return 07、一个程序由一个或多个源程序文件组成8、全局声明:即在函数之外进行的数据声明,在函数外面声明的变量称为全局变量。
例如把int a,b,sum;放到main函数的前面9、函数是C程序的主要组成部分,编写C程序的工作主要就是编写一个个函数10、一个C语言程序是由一个或多个函数组成的,其中必须有且只有一个main函数11、一个小程序只包含一个源程序文件,在一个源程序文件中包含若干个函数(其中一个为main函数),若程序规模太大,可以使一个程序包含若干个源程序文件,每个源程序文件又包含若干个函数【一个源程序文件就是一个程序模块,一个程序分成若干个程序模块】12、在进行编译时是以源程序文件为对象进行的【分别对各源程序文件进行编译得到相应的目标程序,然后再将这些目标程序连接成为一个统一的二进制可执行程序】13、C语言的这种特点使得容易实现程序的模块化14、一个函数名后面必须跟一对圆括号,括号内写函数的参数名及其类型。
如果函数没有参数,可以写void或空括号【如int main(void)或int main()】15、void dump(){}它是一个空函数,但是是合法的16、程序总是从mian函数开始执行的,不管位置在哪儿17、程序中对计算机的操作是由函数中的C语句完成的18、二进制目标程序在visual C++中的后缀为.obj19、可执行程序在visual C++中的后缀为.exe20、一个源程序经过编译后得到的目标程序要经过连接阶段与函数库进行连接才能生成可执行文件21、程序设计的任务:①问题分析②设计算法③编写程序④对源程序进行编辑、编译和连接⑤运行程序,分析结果⑥编写程序文档第二章算法1、对数据的描述:在程序中要指定用到哪些数据类型以及这些数据类型和数据的组织形式,这就是数据结构。
数组笔记在程序设计中,把具有相同类型的若干变量按有序的形式组织起来。
这些按序排列的同类数据元素的集合称为数组。
在C语言中,数组属于构造数据类型。
一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。
因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
1.一维数组的定义和引用1.一维数组的定义方式在C语言中使用数组必须先进行定义。
一维数组的定义方式为:类型说明符数组名[常量表达式];其中:类型说明符是任一种基本数据类型或构造数据类型。
数组名是用户定义的数组标识符。
方括号中的常量表达式表示数据元素的个数,也称为数组的长度。
例如:int a[10]; 说明整型数组a,有10 个元素。
float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。
char ch[20]; 说明字符数组ch有20 个元素。
对于数组类型说明应注意以下几点:1)数组的类型实际上是指数组元素的取值类型。
对于同一个数组,其所有元素的数据类型都是相同的。
2)数组名的书写规则应遵循标识符命名规则。
3)数组名不能与其它变量名相同。
例如:main(){int a; float a[10];……}是错误的。
4)方括号中常量表达式表示数组元素的个数,如a[5]表示数组a 有5 个元素。
但是其下标从0 开始计算。
因此5 个元素分别为a[0],a[1],a[2],a[3],a[4]。
5)常量表达式中可以包括常量和符号常量,不能用变量来表示元素的个数,也就是说,C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。
例如:#define FD 5 main(){int a[3+2],b[7+FD];……}是合法的。
但是下述说明方式是错误的。
main(){int n=5; int a[n];……}6)允许在同一个类型说明中,说明多个数组和多个变量。
C Primer Plus(第五版)学习笔记第一章概览1.1 C语言的起源记住Dennis Ritchie和Ken Thomson。
是在设计UNIX操作系统的时候开发的。
1.2 使用C语言的理由C是一种融合了控制特性的现代语言,而我们已发现在计算机科学的理论和实践中,控制特性是很重要的。
其设计使得用户可以自然地采用自顶向下的规划、结构化的编程,以及模块化的设计。
这种做法使得编写出的程序更可靠、更易懂。
C是一种高效的语言。
C程序往往很紧凑且运行速度快。
C是一种可移植语言。
由于C与UNIX的紧密联系,UNIX系统通常都带有一个C编译器作为程序包的一部分。
Linux中同样也包括一个C 编译器。
C强大而又灵活(计算机世界中经常使用的两个词)。
C面向编程人员的需要。
它允许您访问硬件,并可以操纵内存中的特定位。
它具有丰富的运算符供选择,让您能够简洁地表达自己的意图。
多数C实现都有一个大型的库,其中包含有用的C函数。
这些函数能够处理编程人员通常会面对的许多需求。
C的简洁性与其丰富的运算符相结合,使其可能会编写出极难理解的代码。
没有谁强迫您编写含糊难懂的代码,但存在这样的可能性。
试问,除C之外还有哪种语言存在一年一度的“含糊代码”(ObfuscatedCode)竞赛呢?1.3 C语言的发展方向不管C++和Java这些较新的语言如何流行,C在软件产业仍然是一种重要的技能,在最想获得的技能中,它一般都列在前10名。
特别是在嵌入式系统的编程中,C已开始流行。
也就是说,它将用来为汽车、照相机、DVD播放器和其他现代化设备中逐渐普及的微处理器编程。
同样,C已开始进入长期以来一直属于FORTRAN的科学编程领域。
最后,由于它是一种适合用来开发操作系统的语言,C在Linux的开发中也扮演着重要的角色。
1.4 计算机工作的基本原理CPU的工作非常简单,至少在我们所做的这一简短描述中是这样的。
它从内存中获取一个指令并执行该指令,然后从内存中获取下一个指令并执行。
1. c 语言1.1.1.helloworld文件名:test_pointer.c文件内容:#include <stdio.h>#include <malloc.h>int main(){printf("hello world\n\n");return 0;}编译加运行:[root@localhost c_study]# gcc test_pointer.c ;./a.outhello world1.1.2.获取键盘输入文件名:getKeyboardInptStr.c文件内容:#include <stdio.h>#include <malloc.h> int main(){char *a= malloc(sizeof(char *));char *b= malloc(sizeof(char *));scanf("%s",a);scanf("%s",b);printf("%s \t%s\n",a,b);free(a);free(b);return 0;}编译:gcc getKeyboardInptStr.c -o hello.exe运行[root@localhost tcp_ip]# ./hello.exe abcdddabc ddd[root@localhost tcp_ip]#1.1.2.1.从键盘输入构造数组文件名keyboard_input.c文件内容:#include <stdio.h>#include <malloc.h>int main(){char * strs[4];char *a;int i;for(i=0;i<4;i++){a= malloc(sizeof(char *));scanf("%s",a);strs[i]=a;//printf("%s \t\n",a);//free(a);}printf("=====================================\n");for(i=0;i<4;i++){printf("%s \t\n",strs[i]);}return 0;}1.1.3.读取文件读取文件有两个操作:打开流(fopen)和关闭流(fclose)#include <stdio.h>#include <stdlib.h>#include <malloc.h>int main(int ac,char**av){int exit_status=EXIT_SUCCESS;FILE *input;while( *++av!=NULL){input=fopen(*av,"r");if(input==NULL){perror(*av);exit_status=EXIT_FAILURE;continue;}if(fclose(input)!=0){perror("fclose");exit(EXIT_FAILURE);}}return exit_status;}1.1.3.1.打开文件流1.1.3.1.1.ungetc 用法文件名:ungetc_test.c文件内容:#include<stdio.h>#include<ctype.h>int main(){int value;int ch;value=0;while((ch=getchar())!=EOF && isdigit(ch)){value=value*10;value+=ch-'0';}//ungetc(ch,stdin);printf("%d\n",value);ch=getchar();printf("last char is %c\n",ch);return value;}若注释掉红色部分:[root@localhost read_file]# gcc ungetc_test.c;echo 234abc|./a.out 234last char is b否则:[root@localhost read_file]# gcc ungetc_test.c;echo 234abc|./a.out 234last char is a1.1.3.2.关闭流1.1.3.3.读取文本文件文件名称:read_file03.c文件内容:#include <stdio.h>#include <stdlib.h>#include <malloc.h>int main(){int value;int ch;char *input_file="ab.txt";FILE *input;input=fopen(input_file,"r");while((ch=fgetc(input))!=EOF){printf("%c",ch);}return 0;}1.2.指针1.2.1.取地址和取值取地址:&取值:*1.2.1.1.取地址int age=23;int *age_adrr=&age;1.2.1.2.取值参阅取地址。
【C语⾔C++编程学习笔记】基础语法,第⼀个简单的实例编程⼊门教程!C语⾔/C++编程学习:⼀个简单的实例如果你能知道该程序将会在显⽰器上显⽰⼀些内容,那说明你还是知道⼀些的!确实如此,但所要显⽰的确切内容不是显⽽易见的,所以请运⾏程序来观看结果。
⾸先,⽤你熟悉的编辑器建⽴⼀个上⾯这个样的程序,然后给这个程序取⼀个名字,并以 .c 作为结尾以满⾜所在系统对⽂件名格式的要求。
例如,你可以把它命名为 helloworld.c。
现在编译并运⾏该程序。
如果⼀切运⾏正常,其显⽰结果为:实例简单说明◆ #include ←包含另⼀个⽂件这是程序的第⼀⾏。
它的作⽤相当于你在⽂件中的这⾏所在的位置键⼊了⽂件 stdio.h 的完整内容。
实际上,它是⼀种剪切和粘贴操作,这样可以⽅便地在多个程序间共享公⽤的信息。
#include 语句是 C预处理指令的⼀个例⼦。
通常,C 编译器在编译前要对源代码做⼀些准备⼯作;这称为预处理。
stdio.h ⽂件作为所有 C编译包的⼀部分提供,它包含了有关输出输⼊函数的信息以供编译器使⽤。
这个名字代表标准输⼊输出头⽂件。
我们称之为头⽂件,C语⾔中通常都带有许多头⽂件。
◆ int main () ←函数名接下来的这⾏代码声明了⼀个 main函数。
⼀个 C语⾔程序总是从称为 main()的函数开始执⾏的。
你可以对你所⽤的其他函数任意命名,但是 main()必须是开始的函数,所以说,main()函数在程序中是唯⼀的。
那么圆括号的功能呢?它们表明 main()是⼀个函数。
以后你将了解到更多的函数。
但现在,请你记住这个函数是 C程序的基本模块。
int 指明了 main()函数的返回类型。
这意味着 main()函数返回值的类型是整数。
返回到哪⾥呢?返回给操作系统。
如果浏览⽼版本的 C代码,你将发现程序常常以:main()这种形式开始。
C90标准勉强允许这种形式,但是 C99标准不允许。
因此即使你当前的编译器允许,也不要这么做,请注意规范。
C语⾔学习笔记(004)-数组名和数组⾸地址(转)⼀个变量有地址,⼀个数组包含若⼲元素,每个数组元素都在内存中占⽤存储单元,它们都有相应的地址。
指针变量既然可以指向变量,当然也可以指向数组和数组元素(把数据起始地址或某⼀元素的地址放到⼀个指针变量中)。
所谓数组的指针是指数组的起始地址,数组元素的指针数组元素的地址。
这种指针变量的定义与以前介绍的指向变量的指针变量相同。
应当注意,如果数组为int型,则指针变量亦应指向int型。
规定数组名代表数组的⾸地址,也就是第⼀个元素的地址。
因此,下⾯两个语句等价:p=&a[0];p=a;注意数组a不代表整个数组,上述"p=a;"的作⽤是"把a数组的⾸地址赋给指针变量p",⽽不是"把数组a各元素的值赋给p"。
在定义指针变量时可以赋给初值:int*p=&a[0];它等效于:int*p;p=&a[0];当然定义时也可以写成int*p=a;它的作⽤是将a的⾸地址(即a[0]的地址)赋给指针变量p(⽽不是*p)。
假设p已定义为指针变量,并已给它赋了⼀个地址,使它指向某⼀个数组元素。
如果有以下赋值语句: *p=1;表⽰对P当前所指向的数组元素赋以⼀个值(值为1)。
C规定对p+1指向数组的下⼀个元素(⽽不是将p值简单地加1)。
如果p的这初值为&a[0],则: (1)p+i和a+i就是a[i]的地址,或者说,它们指向a数组的第i个元素。
(2)*(p+i)或*(a+i)是p+i或a+i所指向的数组元素,即a[i]。
(3)指向数组的指针变量也可以带下标,如p[i]与*(p+i)等价。
根据以上叙述,引⽤⼀个数组元素,可以⽤: (1)下标法,如a[i]形式; (2)指针法,如*(a+i)或*(p+i)。
要输出各元素的值有三种⽅法:○1下标法○2通过数组名计算数组元素地址,找出元素的值。
○3⽤指针变量指向数组元素。
翁凯c语言笔记
翁凯是一位热爱编程的学生,他在学习C语言的过程中积累了很多宝贵的经验和知识。
下面是他的一些C语言学习笔记,希望对大家有所帮助。
1. 基础语法:C语言是一种结构化的编程语言,具有丰富的数据类型和运算符。
翁凯通过学习基础语法,掌握了变量的声明和赋值、控制语句、循环语句等基本概念。
2. 函数与模块化编程:C语言通过函数的调用来实现模块化编程,提高了代码的可读性和可维护性。
翁凯学会了如何定义和调用函数,并且学习了递归函数的使用。
3. 数组与指针:在C语言中,数组和指针是非常重要的概念。
翁凯弄清楚了数组和指针之间的关系,并学会了如何使用它们进行内存管理和数据操作。
4. 结构体与文件操作:C语言中的结构体可以用来存储不同类型的数据,翁凯学会了如何定义和使用结构体,并且掌握了文件的读写操作,可以将结构体数据保存到文件中。
5. 动态内存分配:C语言提供了动态内存分配的功能,翁凯学会了
使用malloc()和free()函数来进行内存管理,避免了内存泄漏和内存溢出的问题。
6. 编程技巧与调试:除了学习语法和基本概念,翁凯还注重培养编程技巧和调试能力。
他学会了使用调试工具和技巧,解决程序中的bug,并且善于利用注释、缩进和命名规范来提高代码的可读性。
翁凯通过不断学习和实践,逐渐掌握了C语言的基本知识和技巧。
他深知编程需要不断练习和积累,因此他坚持每天都进行编程练习,并且参与了一些开源项目,与其他开发者交流经验。
翁凯相信,只有不断学习和实践,才能成为一名优秀的C语言程序员。
1.#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器2.3.sbit led=P0^0; //将单片机的P0.0端口定义为led4.5.void main()6.{7.led=0; //P0.0端口设置为低电平8.while(1);9.}这是一个点亮LED灯的程序,下面对此进行解析#include "reg52.h"# 符合表明这一行是在编译器接手前由c预处理器处理的语句#include 语句是c预处理器指令Reg52.h 单片机头文件,此文件中定义了单片机的一些特殊功能寄存器10.sbit led=P0^0; //将单片机的P0.0端口定义为ledsbit是定义特殊功能寄存器的位变量11.void main()12.{13. while(1);14.}Main是一个普通的名字,其他函数可以随意命名但是主函数不行,它是唯一的选择。
()的功能则是表示main()是一个函数很快您就会学到更多的函数,但现在,就请记住这个函数是C程序的基本模块Void则是函数类型,中文翻译是无类型。
但是慢慢学习后就会发现有些函数的类型是int 或者是 char{} 花括号,它划定了main函数的界线。
通常,所有的C函数都是使用花括号来表示函数体的开始与结束。
{}花括号,[]中括号,()小括号的作用是不一样的,不要混淆。
1.#include <reg52.h> //51头文件2.#include <intrins.h>//包含循环右移函数_cror头文件3.4.#define uchar unsigned char //宏定义5.#define uint unsigned int //宏定义6.7.sbit LED1 = P1^0; //位定义LED1硬件接口8.uchar i; //申明循环计数变量9.uchar temp;//P1口状态暂存变量10.11.//毫秒级延时函数12.void delay(uint z)13.{14.uint x,y;15.for(x=z;x>0;x--)16.for(y=120;y>0;y--);17.}18.19.//主函数20.void main()21.{22.temp = 0x7f; //定义LED灯初始状态,从LED8开始亮23.P1 = temp; //赋值给P1,点亮LED824.delay(1000); //延时1000毫秒25.while(1) //大循环26.{27.for(i = 0; i < 8; i++)28.{29.temp = _cror_(temp,1);//循环右移,LED从左至右点亮30.P1 = temp;31.delay(1000);32.}33.}34.}“#define uchar unsigned char”是表示之后代码中的“uchar”全部代表“unsigned char”,并且是在执行编译预处理时就进行了实际的替换操作。
C学习笔记一C语言和汇编语言的区别C语言和汇编语言是计算机编程中常见的两种语言,它们在编写程序时有着不同的特点和用途。
本文将从语法、可读性、抽象程度以及机器依赖性等方面对C语言和汇编语言进行比较,以帮助读者更好地理解它们之间的区别。
1. 语法差异C语言是一种高级编程语言,它采用类似英语的结构化语法,具有丰富的语法特性,包括变量、数组、条件语句、循环语句和函数等。
C语言的语法相对简洁,能够快速实现一些功能。
而汇编语言是一种低级编程语言,使用各种助记符和符号来表示机器指令、寄存器和内存访问等,需要编写者有较强的硬件知识和技巧。
相比C语言,汇编语言更接近计算机底层,更加底层、精简和直接。
2. 可读性和可维护性C语言的语法结构和语义更加接近自然语言,代码具有较好的可读性和可维护性。
由于C语言的抽象程度较高,程序员可以更快速地理解代码,并进行修改和维护。
同时,C语言具有模块化的特点,程序可以按模块进行组织,便于团队协作开发。
相比之下,汇编语言的语法和符号较为晦涩,阅读和理解汇编代码需要具备较深的计算机体系结构和指令集的知识。
汇编语言编写的程序通常较为底层,代码行数相对较多,可读性和可维护性较差,需要更高的技术水平和耐心。
3. 抽象程度C语言是一种高级语言,提供了丰富的语法特性和抽象层次,为程序员提供了更方便和高效的编程方式。
C语言可以在不同的计算机平台上进行移植,并且可以通过调用库函数实现复杂的操作,具备良好的抽象能力。
汇编语言是一种低级语言,提供了直接操作硬件的能力。
汇编程序员可以直接访问寄存器、内存等底层资源,实现对计算机的精细控制。
汇编语言相对于C语言来说更接近机器语言,具有更高的执行效率和更大的灵活性。
4. 机器依赖性C语言是一种面向过程的编程语言,编写的程序相对独立于具体的硬件平台,具有较好的可移植性。
通过编译器的编译,C语言可以在不同的操作系统和计算机上运行。
汇编语言则直接操作底层的机器指令和寄存器,与具体的硬件平台密切相关,不同的计算机架构和操作系统可能需要不同的汇编代码。
针对vs的一些问题1、VS2013中使用fopen、sprintf等函数是会出现安全问题:error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.而报错。
解决方法:右键工程名-->属性-->C/C++-->预处理器-->预处理器定义,编辑右边输入框加入:_CRT_SECURE_NO_WARNINGS保存。
2、不能从const char *转换为LPCWSTR在VC 6.0中编译成功的项目在VS2005 vs2005、vs2008、vs2010中常会出现类型错误。
经常出现的错误是:不能从const char *转换为LPCWSTR如使用MessageBox(hwnd,"TEST",NULL,0)就会报错,如果使用强制转换(LPCWSTR)"TEST",虽然能够通过,但是编码会出错。
可行的办法是使用_T("TEST")转换,或者TEXT("TEST" )都可以MessageBox(hwnd,TEXT("TEST"),NULL,0);MessageBox(hwnd,_T("TEST"),NULL,0);或者强制使用ANSI字符MessageBoxA(hwnd,"TEST",NULL,0);另一种方法是:项目菜单——项目属性(最后一个)——配置属性——常规——项目默认值——字符集,将使用Unicode字符集改为未设置即可。
3、设置当前操作的项目为默认启动项右击解决方案-》通用属性–》启动项目-》当前选定内容。
4、在vs2013中出现错误:未定义标识符ULONG_PTR,BOOL,DWORD,LPCTSTR,HWND等在文件头部增加:include头文件WinDef.h eg: #include <windef.h>5、vs2012下用MFC编程,用CString定义一个对象,m_strLine,希望实现在onChar消息下实现键盘输入一个字符串,就把它加入到m_strLine中,写如下代码m_strLine += nChar; 会报错;运算符与操作数类型不匹配因为nChar是UNIT类型的,而m_strLine是CString类型的,不同类型的不能进行加减、赋值等操作,需要改成m_strLine += (char)nChar;6、vs2012删除某个成员函数(不是物理删除就是注释掉而已)右键点击该成员函数所属的类,选择类向导,在弹出的对话框中选中该成员函数,点击删除处理程序即可达到在成员函数的前面添加注释的效果;Vs快捷键Ctrl+K,C: 注释选定内容Ctrl+K,U: 取消选定注释内容Ctrl+左右箭头键: 一次可以移动一个单词Ctrl+上下箭头键: 滚动代码屏幕,但不移动光标位置。
Ctrl+Shift+L: 删除当前行在此处键入公式。
Ctrl+E,W: 自动换行Ctrl+G: 转到指定行Shift+Alt+箭头键: 选择矩形文本Alt+鼠标左按钮: 选择矩形文本Ctrl+Shift+U: 全部变为大写Ctrl+U: 全部变为小写Ctrl+D,B: 断点窗口Ctrl+D,I: 即时窗口Ctrl+Shift+N: 新建项目Ctrl+Shift+O: 打开项目Ctrl+Shift+S: 全部保存Shift+Alt+C: 新建类Ctrl+Shift+A: 新建项Shift+Alt+Enter: 切换全屏编辑智能提示:ctrl + J方法参数提示:ctrl + shift +空格Ctrl+F5: 开始执行(不调试)F9: 切换断点Ctrl+Shift+F9: 删除全部断点关闭VS2013中单击打开文件的功能中文版:工具--》选项--》环境--》选项卡和窗口--》预览选项卡去掉“在解决方案资源管理器中预览选定的文件(在按住Alt的同时单击可避免预览)(X)”的勾选C++中的模板类模板1、先建立一个Arry.h的头文件2、在头文件中写入固定格式#ifndef ARRY_H#define ARRY_H…code…#endif3、在上一步的code地方创建类模板template <class T>class Array{public:Array(int size);//构造函数bool push(T elem);//放入值void display();//显示函数private:T *m_pArr;int m_iSize;int m_iLength;};4、实现构造函数Array();template <typename T>Array<T>::Array(int size){m_iSize = size;m_iLength = 0;m_pArr = new T[m_iSize];}5、实现成员方法push();template <typename T>bool Array<T>::push(T elem){if (m_iLength >= m_iSize){return false;}m_pArr[m_iLength] = elem;m_iLength++;return true;}6、实现成员方法display();template <typename T>void Array<T>::display(){for (int i = 0; i < m_iLength; i++){cout<<m_pArr[i] <<endl;}}7、创建实例化的主函数入口文件#include <stdlib.h>#include "Arry.h"#include <iostream>using namespace std;int main(void){Array<int>arr1(10);arr1.push(2);arr1.push(4);arr1.display();Array<double> *arr2 = new Array<double>(10);arr2->push(5);arr2->push(6);arr2->display();system("pause");return 0;}C与C++的区别主要内容:C与C++的简单区别:1、建立的文件类型不一样,c语言为.c,c++为.cpp;;2、引入的头文件不一样;3、C++有命名空间;4、输入输出语句不一样;5、C语言不允许重载,C++可以重载;6、自定义类型,c语言使用struct,c++使用class;7、C语言面向过程,c++面向对象;C++特性抽象具体事务的定义过程封装讲操作方法与数据绑定在一起继承支持单继承、也支持多继承多态当c++编译器在编译的时候,发现animal类的breath()函数是虚函数,这个时候c++就会采用迟绑定技术(late binding)的技术,在运行时,依据对象的类型来确认调用的是哪一个函数,这种能力就叫做c++的多态性;C++中无访问限定符的时候默认为privatePhp中无访问限定符的时候默认为public结构体中无访问限定符默认为public这又是结构体与类的不同之处编写潜规则:先写private私有数据成员后写public方法#include <iostream>using namespace std;struct Student{int a;double b;char c;void SetData(int xa, double xb, char xc){a = xa;b = xb;c = xc;}};class CGoods{public:void RegisterGoods(char[], int, float);//输入数据;void CountTotal(void);//计算商品的总价值;void GetName(char[]);//读取商品名;int GetAmount(void);//读取商品数量;float GetTotal_Value(void);//读取商品单价;public://访问限定符char Name[21];int Amount;float Price;float Total_value;};C++语言中,函数的参数和返回值的传递方式有三种:值传递、指针传递和引用传递。
1、以下是“值传递”的示例程序。
由于Func1 函数体内的x 是外部变量n 的一份拷贝,改变x 的值不会影响n, 所以n 的值仍然是0。
Void func1(int x){X = x + 10;}Int n = 0;Func1(n);Cout<<”n = ”<<n<<endl;//n = 02、以下是“指针传递”的示例程序。
由于Func2 函数体内的x 是指向外部变量n 的指针,改变该指针的内容将导致n 的值改变,所以n 的值成为10。
Void func2(int *x){(*x) = (*x) + 10;}Int n = 0;Func2(&n);Cout<<”n = ”<<n<<endl;//n = 103、以下是“引用传递”的示例程序。
由于Func3 函数体内的x 是外部变量n 的引用,x和n 是同一个东西,改变x 等于改变n,所以n 的值成为10。
void Func3(int &x){x = x + 10;}⋯int n = 0;Func3(n);cout << “n = ” << n << endl; // n = 10对比上述三个实例程序,会发现“引用传递”的性质像“指针传递”,而书写方式像“值传递”。
实际上“引用”所能够做的任何事情“指针”也都能够做。
数据类型数据类型的本质:固定大小内存块的别名B &b 数组数据类型,(定义一个:1、数组类型,2、数组指针,3、数组类型和数组指针类型的关系)this关键字构造函数与析构函数一、构造函数是特殊的共有成员函数,其特征如下:1、函数名与类名一致2、构造函数无函数返回类型说明,注意是没有而不是void,即什么也不写,也不能写void!!实际上构造函数有返回值,返回值就是构造函数创建的对象。