1、C语言中将二维数组作为函数参数来传递
c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下:
方法一, 形参给出第二维的长度。
例如:
#include <stdio.h>void func(int n, char str[ ][5] ){int i;for(i = 0; i < n; i++)printf("/nstr[%d] = %s/n", i, str[i]);}void main(){char* p[3];char str[][5] = {"abc","def","ghi"};func(3, str);}方法二,形参声明为指向数组的指针。例如:#include <stdio.h>void func(int n, char (*str)[5] ){int i;for(i = 0; i < n; i++)printf("/nstr[%d] = %s/n", i, str[i]);}void main(){char* p[3];char str[][5] = {"abc","def","ghi"};func(3, str);}方法三,形参声明为指针的指针。例如:#include <stdio.h>void func(int n, char **str){int i;for(i = 0; i < n; i++)printf("/nstr[%d] = %s/n", i, str[i]);}void main(){char* p[3];char str[][5] = {"abc","def","ghi"};p[0] = &str[0][0];for(int i = 1;i<3;i++){p[i] = str[i];}anacurve(3,p);func(3, p);}
2、strcmp和stricmp、strcmpi三者之间的区别(C++
#include <string.h>
#include <stdio.h>
原型:extern int strcmp(const void *s1, const void *s2);
用法:#include <string.h>
功能:比较字符串s1和s2是否相同,区分大小写。
说明:如果s1=s2则返回零,否则返回非零值。
原型:extern int stricmp(char *s1,char * s2);
用法:#include <string.h>
功能:比较字符串s1和s2,但不区分字母的大小写。
说明:strcmpi是到stricmp的宏定义,实际未提供此函数。
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
//举例:
void main()
{
char *str1=“I am OldWolf”;
char *str2=“I am Oldwolf”;
int cmp;
printf(“原字符串分别为:\n%s\n%s\n\n”,str1,str2);
cmp=strcmp(str1,str2);
if (cmp!=0)
printf(“strcmp比较字符串不相同!\n”);
else
printf(“strcmp比较字符串相同!\n”);
cmp=stricmp(str1,str2);
if (cmp!=0)
printf(“stricmp比较字符串不相同!\n”);
else
printf(“stricmp比较字符串相同!\n”);
cmp=strcmpi(str1,str2);
if (cmp!=0)
printf(“strcmpi比较字符串不相同!\n”);
else
printf(“strcmpi比较字符串相同!\n”);
}
3、
父类转子类
Handle(Geom_Geometry) plane;
Handle (Geom_Plane) S = Handle(Geom_Plane)::DownCast(plane)
TopoDS_Face m_face= BRepBuilderAPI_MakeFace(S,Precision::Confusion());
TopoDS_Shape = m_face ;
子类转父类子类可以直接赋值给父类