1、memset(a,0,sizeof(a));//重置数组a全为0
在做这道题时: 32位环境下,int *p=new int[10];请问sizeof(p)的值为() A、4
B、10 C、40 D、8
我以为正确答案为C,int类型为32位,占四个字节,10个自然就是40了,结果正确答案为A,只是指针p占的空间。 由此可见,数组名并不是完全等同于指针。虽然它们都可以通过指针方式访问数组。在这个博客看到他们的区别:http://blog.csdn.net/ljob2006/article/details/4872167
但是数组在作为函数参数传递过程中,会退化成指针。这也是为什么指针作为参数传递时,经常要一个长度。
2、输出多个数据其中每两个数据间有空格
int first=0;
if(first) printf(" ");else first=1;
printf("%d",x);
3、字符比较strchr(s,'a'/*char 数组中某值*/);//返回第一个匹配位置,否则返回NULL
4、printf输出到屏幕;fprintf到文件;sprintf到字符串;sprintf(指针,“%d%d”,x,y);
5、typedef {域定义}类型名;
6、阶乘:factorial;谓词:判断一个事物是否具有某一性质;素数:prime
判断是否是谓词的函数名:is_xxx(is it a/an xxx)
7、内存中某些地址只读即其所存数据无法修改,所以swap函数不要:
int *temp;*temp=*a;*a=*b;*b=*temp;//temp指向的值可能无法修改
而换成:
int temp;temp=*a;*a=*b;*b=temp;