VB与C语言知识点小结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“大学c语言知识点总结”。
VB是基于BASIC语言的可视化操作
Dim birthday as string Birthday=inputbox(“输入生日”,”birthday”,”1990-1-3”)Msgbox”您的生日是”&birthday(&是转化成字符串连接输出)点击确定显示弹窗
窗体文字输出print” ”
窗体事件:单击、双击(空白)、load 窗体方法:print方法 xx.print” ” show方法 cls方法 VB的数据类型:数值型、字符串型、日期型、对象型 Dim a as integer Dim b as integer A=text1.text B=text2.text Msg”您输入的和是&val(a)+val(b)输入kk则显示实时错误13,类型不匹配 定义常量:const PI as double =3.1415 Select case opt Case “f”
Result=val(a)+val(b)…
End select 一些运算符+-* / = > =
数学函数:取整函数fix()去掉小数部分,int(a)不大于a的整数 abs(a)绝对值,sqr()求平方根
Sgn()判断正负 log()sin()cos()tan()字符串函数:删除空格trim()删除左端空格ltrim 删除右端空格 rtrim
左截取left(s,6)右截取right(s,6)mid(s,2,6)
测长度:len(a)val()数值转换函数 Lcase()Ucase()大小写转换函数
Instr(a,b)在a中找b,找到了则返回第一次出现的位置,没找到则返回0 随机函数:rand(a)cint(a)把小数的第一位四舍五入 数据类型转换函数:CDBL CLNG CSNG CVAR CSTR Now()所有 date()日期 time()时间 If的三种结构:
1、if _____then __________ Endif2、if____then _________ Else if ____then ______ Else ____ endif3、if_____then ______ Else _____ End if Show加载 Visible显示
Select case a Label1.backcolor=RGB(255,0,0)红色 … Case else …
End select RGB(0,255,0)绿色 RGB(0,0,255)蓝色
Do while i
For i=a to b step 2 S=s+i Next i 数组
动态数组,静态数组大小固定
与C不同的是,声明数组时规定是是下标上界 dim counter(1)as integer 也可以同时规定上下界 counter(3 to 4)声明变体数组
Dim intx as integer Dim counterA(5)as integer Dim countB(2)as integer 分别赋值
Dim arrx(2)as variant Arrx(1)=counterA()Arrx(2)=counterB()Msgbox arrx(1)(2)声明多维数组
Static matrxA(9,9)as double Static matrxA(1 to 10,1 to 10)as double 可推广
声明动态数组
Dim arr1()空的就是动态
变量作用域:过程中定义的仅过程内部有效
通用区域定义的整个工程有效。窗体内部直接调用。其它窗体要标明源窗体。冒泡排序
For(i=0;i
//N-1趟 {
} For(j=0;j
C语言的基本数据类型:
1、char 字符型 占用1个字节
2、int 整型 反映所在机器中的整数的最自然的长度8、16、32 限定符:short >=16 long >=32,且short 不得长于int,long不得小于int3、float 单精度浮点型
4、double 双精度浮点型
5、long double 高精度浮点
这三个的长度都取决于机器。限定符 signed 和unsigned 可以用来限定char 和整型。任何unsigned 类型的数总是正直或者0.„a‟字符常量
“student a”字符串常量 “wangwei””nihao”字符串连接 使用”表示双引号字符
从技术角度看,字符串常量就是字符数组,只是使用了空字符‟ ‟作为字符串的结尾,不算在长度里。
枚举常量:枚举是一个常量整型值的列表。Enum Boolean{NO,YES} 没有显式说明的情况下则值是0,1,2,3,4… 若有部分枚举有值,则其后的值在指定值递增。相对于#define来说,它的优势就是常量值可以自动生成 Typedef enum {…}def Def a 必须是其中的一个值
由&&和||连接的表达式按从左到右的顺序求值,一旦知道结果真假之后立即停止运算。&&比||的优先级高。
优先级从高到底:关系运算符(> >=
按位运算符:& | 异或^ >>
Goto语句,在某些场合goto语句还是用得着的,最常见的用法是终止程序在某些深度嵌套的处理过程,因为break只能跳出最内层的循环。首先主函数也是函数。
变量:全局变量,在所有函数外部定义的外部变量,具有工程可见性
局部变量,在函数内部定义 函数:内部函数,用static定义 外部函数,即具有工程可见性,对整个源程序可见,应该用extern标注。这是默认的Static的作用:
1、隐藏。编译多个文件的时候,未加static前缀的全局变量和函数具有全局可见性(使用时要在头文件中用extern标注)
2、对于变量有另外的两个作用,保持变量的内容持久,有两种变量存储在静态数据区,一种是外部变量即全局变量,一种是static变量。
3、默认初始化为0 Static的使用法则:
1、若是全局变量尽在单个C文件中访问,则可加static标注,以减少模块之间的耦合度。
2、若全局变量仅由单个函数访问,又想保持其值,可以将其修改为静态局部变量。其实,static可以不用,限定单个文件,不必要,保持其值,局部静态不如全局变量方便,变量可以直接初始化为0。
对于全局变量和外部函数用在工程中的其它文件,在资源接口和头文件中同意使用extern标注,以免出错。
指针是一种保存变量地址的变量。通常是两个字节或者四个字节。用处广泛,原因之一,指针可能是表达某个计算的唯一途径,通常可以生成更高效更紧凑的代码。指针和goto一样,会导致程序难以理解,容易出错。ANSI C制定了操纵指针的明确规则。&取对象的地址
*访问指针指向地址的内容
定义指针 int *ip //ip是指向int类型的指针 一般来说指针指向单变量是不太有意义的。
指针与函数:由于C语言是以传值的方式将参数传递给被调用的函数的,被调用的函数不能修改参数的值,得到的只是副本,如下面一个错误的函数定义,交换两个数的值 Void swap(int x,,int y){ Int temp Temp=x X=y Y=temp } 正确的应该是这样的 Void swap(int *x , int *y){ Int temp Temp=*x *x=*y *y=temp } 指针与数组
数组的名称代表的是数组开始的第一个元素的地址。所以a[i]等同于*(a+i),&a[i]等同于a+I 指向数组的指针也可以这么用:pa[i]也就等同于*(pa+i)。总之指向数组的指针与数组的名称用法是一样的。Int *pa Pa=&a[0] 或者 pa=a Pa++//指向下一个元素
(*pa)++ //将指向的值加1 a=*p++//取值并下移
指针与字符串,其实字符串与数组是一样的,只是有没有结尾符的问题。名字也是指针 字符串也可以通过一个指向其第一个元素的指针访问 Char *pmeage Pmeage= “now is the time ”;注意与其区别
Char ameage[]=”now is the time” Char aname[][15]={” ”,” ”,…} 两个版本的strcpy函数 Void strcpy(char *s ,char *t){ Int I;I=0;While((s[i]=t[i])!=‟ ‟)I++;} Void strcpy(char *s ,char *t){ While((*s=*t)!=‟ ‟){ S++;T++;} } 更有经验的程序员更愿意写成 While((*s++=*t++)!=‟ ‟)进一步简化为
While(*s++=*t++)其它的指针定义:
定义指针数组 Char * lineptr [maxline] Int a[10][20] Int *b[10] A[3][4] b[3][4]都是对象的合法引用,它的一个优点就是每一行的长度可以不同。
(*ptr)[10]定义了一个指向了一个有10个元素数组的指针。即这是一个行指针。多维数组的初始化: Char daytab[2][3]= {{1,2,3},{4,5,6}};二维数组
二维数组以一种晦涩的方式建立在一维数组之上。计算机将二维数组按一维存储(即只有1行)访问时的步长由i和j决定。(i*行长度+j)二维数组传参:
1、当成一维处理 Int a[10][10];Int *b;B=a 那么a[i][j]和b[10*i+j] 声明:f(int *b)传参:f((int *)a)
2、二维仍然当成二维,但必须制定步长(即有多少列),一维可省略,当然也可以不省略 Char word[5][10] 声明:Wordsort(char p[ ][10],int rowsize);传参:Wordsort(word ,5)
3、利用行指针传参
声明:f(int(*a)[3])传参:f(a)
4、我们在编写程序的时候却需要用到各个维数都不固定的二维数组作为参数,这就难办了,编译器不能识别阿,怎么办呢?不要着急,编译器虽然不能识别,但是我们完全可以不把它当作一个二维数组,而是把它当作一个普通的指针,再另外加上两个参数指明各个维数,然后我们为二维数组手工寻址,这样就达到了将二维数组作为函数的参数传递的目的,根据这个思想,我们可以把维数固定的参数变为维数随即的参数,例如:
void Func(int array[3][10]);
void Func(int array[][10]);
变为:
void Func(int **array, int m, int n);
在转变后的函数中,array[i][j]这样的式子是不对的(不信,大家可以试一下),因为编译器不能正确的为它寻址,所以我们需要模仿编译器的行为把array[i][j]这样的式子手工转变为:
*((int*)array + n*i + j);
在调用这样的函数的时候,需要注意一下,如下面的例子:
int a[3][3] =
{
{1, 1, 1},{2, 2, 2},{3, 3, 3}
};
Func(a, 3, 3);
根据不同编译器不同的设置,可能出现warning 或者error,可以进行强制转换如下调用:
Func((int**)a, 3, 3);
其实多维数组和二维数组原理是一样的,大家可以自己扩充的多维数组,这里不再赘述。写到这里,我先向看了这篇文章后悔的人道歉,浪费你的时间了。下面是一个完整的例子程序,这个例子程序的主要功能是求一个图中某个顶点到其他顶点的最短路经,图是以邻接矩阵的形式存放的(也就是一个二维数组),其实这个函数也是挺有用的,但是我们这篇文章的重点在于将二维数组作为函数的参数传递。
结构体是一个或者多个变量的集合,这些变量可能是不同的类型。Struct相当于生命了一种数据类型。Struct point { Int x;Int y;} Struct Point a;结构体的引用
对于变量可以直接用结构名.成员,或者使用指针 Struct point *pp Pp=&a;(*pp).x 或:pp->x 使用typedef类型定义的3种好处
1、表达方式更加简洁
2、(专用头文件)提高程序的可移植性
3、Typedef struct tnode * treeptr 显然更有表达力
输入输出等功能(printf scanf等)并不是C语言本身的组成部分,它们是C语言标准库中的函数提供的功能,无论是window还是linux,这些函数都有标准的格式和相同的功能。函数声明只是告诉编译器数据类型,并不分配具体空间。
本人也是刚学C不久算是老菜鸟。把我遇到的问题写出来,希望对初学者有点帮助。 一、分号,大括号 分号。分号是表达式结束的标志,一般表达式后面都要有。写“;”的时候一定要注意:......
C语言总结 第一章 概述1. C语言的特点①语言简洁、紧凑,使用方便、灵活。共有32个关键字,9种控制语句。 ②运算符丰富,公有34种运算符。③数据结构丰富,数据类型有:整型、实型、字符型......
【C语言】 【数据类型】【转义字符】 【语句】 【#define】 #define 新名 原名 【typedef】typedef 原类型名 新类型名; 【sbit】 sbit P1_0=P1^0; 在reg52.h或reg51.h的头......
C语言知识点总结资料I 总体上必须清楚的:程序结构是三种:顺序结构,循环结构(三个循环结构),选择结构(if和switch) 读程序都要从main()入口,然后从最上面顺序往下读(碰到循环做循......
学习中的快乐,产生于对学习内容的兴趣和深入。世上所有的人都是喜欢学习的,只是学习的方法和内容不同而已。通过记录心得体会,我们可以更好地认识自己,借鉴他人的经验,规划自己的......