随笔分类 - C\C++
C\C++中的问题
类似◇形的图形,四边都是对应的行数的数字。
摘要:#include int main(){int row;printf("请输入1~35的数字!!!\n");label1:scanf("%d",&row);if (row>35||row=0;--i){for(int j=0;j<=row-i;++j)printf(" ");for(int k=0;k<=2*(i-1);++k){if ((k==0)||(k==2*(i-1))){if (i<=9){printf("%d",i);}else{printf("%c"
阅读全文
C 中随机数
摘要:C语言,如何产生随机数:基本函数在C中取随机数所需要对函数是:int rand ( void );void srand ( unsigned int n);备注:必须包含该头文件#include 使用方法rand()函数返回0到RAND_MAX之间的伪随机数(pseudorandom)。RAND_MAX常量被定义在stdlib.h头文件中。其值等于32767,或者更大srand()函数使用自变量n作为种子,用来初始化随机数产生器。只要把相同的种子传入srand(),然后调用rand()时,就会产生相同的随机数序列。因此,我们可以把时间作为srand()函数的种子,就可以避免重复的发生。如果,调
阅读全文
传参问题
摘要:#include #include void getmemory(char *p) //函数的参数是局部变量,在这里给它分配内存还在,但是P释放了。{p=(char *) malloc(100);}int main( ){char *str=NULL;getmemory(str);strcpy(str,"hello world");printf("%s/n",str);free(str);return 0;}答: 程序崩溃,getmemory中的malloc 不能返回动态内存, free()对str操作很危险修改后的程序如下:#include #incl
阅读全文
scanf
摘要:scanf函数,与printf函数一样,都被定义在stdio.h里,因此在使用scanf函数时要加上#include。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中,其关键字最末一个字母f即为“格式”(format)之意。函数原型int scanf( const char *format, ... );scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。其调用格式为: scanf("",);函数 scanf() 是从标准输入流 stdio 中读内容的通用子程序,可以读入全部固有类型的数据并自动转换成机内形式。返回值scanf
阅读全文
冒泡排序
摘要:#include void swap(int *a,int *b){int temp;temp=*a;*a=*b;*b=temp;}/************//* 升序 *//************///小的往上冒泡void maopaosort(int a[],int n){for (int i=0;ii;j--){if (a[j]a[j+1]){swap(&a[j],&a[j+1]);}}}}/************//* 降序 *//************/void maopaosort3(int a[],int n){for (int i=0;ii;j--){i
阅读全文
定义一个红,求平方
摘要:#include #define SQUARE(a)((a)*(a))void main(){int a=5; int b;b=SQUARE(a++);printf("%d %d",a,b);}
阅读全文
运算符
摘要:一、逻辑运算符对于使用逻辑运算表达式,返回0表示“假”,返回1表示“真”。分为: 1)&&逻辑与;2)||逻辑或;3)!逻辑非二、位运算符 位运算符则将操作数(可以任意进制:十进制、八进制或十六进制)转化为二进制,并相应对返回1或0。位运算符将数字视为二进制值,并按位进行相应对运算,运算完成后再重新转换为数字。分为: 1)&位与符eg: 10&15表示(1010&1111),返回对值是10(即二进制1010) 2)|位或符eg: 10&15表示(1010&1111),返回对值是15(即二进制1111) 3)^位异或符eg: 10&
阅读全文
数字随机组合
摘要:要求:0到9十个数字随机组合,但不能相同!!!#include #include void main(){ char a[]={'0','1','2','3','4','5','6','7','8','9'}; for(int i=0;i<10-1;i++) { for(int j=i+1;j<10;j++) if(a[i]!=a[j]) { cout<<a[i]<<a[j]<<"
阅读全文
C++:memset ,memcpy 和strcpy 的根本区别!
摘要:#include #include #include #include //memcpy:按字节复制原型:extern void* memcpy(void *dest,void *src,unsigned int count)//功能:由src所指内存区域复制count个字节到dest所指的内存区域;//同strcpyvoid *memcpy_su(void *dest, void *src, unsigned int count){ assert ((dest!=NULL)&&(src!=NULL)); char* bdest = (char*)dest; char* bsr
阅读全文
16位的二进制数,每4位为一个数,写函数求他们的和
摘要:备注:键盘输入一个10进制的数 ,程序会自动转成16位二进制的数 ,然后在进行每4位为一个数,写函数求他们的和。代码如下:char SumOfQuaters(unsigned short n){ int c = 0; int i = 4; do { c += n & 15;//把n和15(二进制位1111)按位与操作,可以得出低四位的数。然后把n右移4位,最左边对4位用0000代替, 这样又可以得出低四位的数,以此类推,可以得出其他对数。 n = n >> 4; } while (--i); return c;}void main(){unsigned short a ;c
阅读全文
常量指针、指针常量和指向常量的指针常量
摘要:在C/C++的学习中,有人经常搞不清楚“常量指针”和“指针常量”这两个概念。其实简单一点讲,“常量指针”所指向的地址上的数据是常量,而“指针常量”所指向的地址是常量,地址上面的数据是可以变化的。 首先,告诉大家一个小规则,就是像这样连着的两个词,前面的一个通常是修饰部分,中心词是后面一个词,怎么说呢,就像这里的常量指针和指针常量。 常量指针,表述为“是常量的指针”,它首先应该是一个指针。常量指针,就是指向常量的指针,关键字const出现在 * 左边,表示指针所指向的地址的内容是不可修改的,但指针自身可变。 指针常量,表述为“是指针的常量”,它首先应该是一个常量。指针常量,指针自身是一...
阅读全文
用变量a给出下面的定义
摘要:a)一个整型数(An integer)b) 一个指向整型数的指针(A pointer to an integer)c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer) d) 一个有10个整型数的数组(An array of 10 integers) e) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to integers) f) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers) g) 一个指向函数的指针
阅读全文
字符串的拼接
摘要:题目:两个字符串,s,t;把t字符串接到s字符串尾,s字符串有足够的空间存放t字符串void connect(char *s,const char *t) //strcat strlen strcpy strcmp strchr strstr //形参{char *q = t;char *p =s;if(q == NULL)return; //判断q是否为空指针,为空时可以不用进行拼接操作while(*p!='\0') //p指针往上偏移,移到’\0’时跳出此while循环,进入第二个while循环{p++;}while(*q!=0){*p=*q;p++;q++;}*p = &
阅读全文
宏的写法和特点
摘要:宏的写法:(1)宏名要大写;(2)宏参不带类型; (3)后面出现参数对地方一定要用“()”括起来;(4)整个宏用“()”括起来; (5)宏后面通常不带标点符号; =(b))?(a):(b))>宏的作用:宏调用不会产生中断,直接在当前的地方展开 。
阅读全文
零值比较
摘要:float X与零值的比较: if(x-0.000001)注:浮点数是不可以直接比较大小的,因为是非精确存储,只能设置一个精度(0.000001为允许对误差即精度),然后在允许误差内的就认为是相等的;对浮点型数比较的时候用==是不对的。int X与零值的比较: if(X==0) if (X!=0)指针char *p与零值的比较: if (NULL==p) if(NULL!=p)注:错误的写法if(p==0)//容易让人误解p是整型变量if(p!=0)if(p)//容易让人误解p是bool型变量if(!p)bool flat和零值的比较: if (flag) if(!flag )注:根据布...
阅读全文
static的用途
摘要:1)限制变量的作用域:即在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变;2)限制变量的存储域:在模块内(但在函数体外),一个被声明为静态的变量,可以被模块内的所有函数访问,但不能被模块外其它函数访问,它是一个本地的局部变量;在模块内 ,一个被声明为静态的函数只能被这一个模块内的其他函数调用,那就是这个函数被限制在声明它的模块的本地范围内使用。补充:一个代码运行时分为4个区:1)code区:代码2)data:全局,静态,常量 没赋初值的值默认为03)堆:new,malloc分配的内存,需要delete,free释放;如果不释放,则只有等到 程序正常运行结束时,由操作系统回收.
阅读全文
引用与指针的区别
摘要:在c++函数中,形式参数用 引用 和用指针都可以起到在被调用函数中改变调用函数的变量的作用。什么时候用引用作参数?什么时候用指针作参数呢 void function (int *ptr); void function(int &ref);没有 特定的规定。。学的 久了,就 会习惯什么时候用指针什么时候用引用了!引用与指针有什么区别?1)引用必须被初始化,指针不必。2)引用初始化以后不能被改变,指针可以改变所指的对象。3)不存在指向空值的引用,但是存在指向空值的指针。C++中尽量用引用。个人觉得所有的引用都可以用指针,但指针比引用容易出错。引用当然更直观更直接,做参数时,如果在函数内不刻
阅读全文
浙公网安备 33010602011771号