![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CC++语言学习
丁老师的技术随笔
公众号:丁老师的技术随笔
展开
-
int strcmp(char *source, char *dest)函数
#include int strcmp_test(char*source, char *dest) { while ( (*source != '\0') &&(*source == *dest)) { source++; dest++; } return ( (*source) - (*dest) ) ? -1 : 0; }void main()原创 2012-08-29 14:28:20 · 2303 阅读 · 0 评论 -
枚举类型 enum
如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。 设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式: enum weekday{ sun,mon,tue,wed,thu,fri,sat }; enum weekday a,b,c; 或者为: enum weekday{ sun,mon,tue,wed,thu,fri,sat }原创 2012-08-26 09:47:33 · 4043 阅读 · 0 评论 -
union 共用体 联合体
共用体表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。在union中,所有的共用体成员共用一个空间,并且同一时间只能储存其中一个成员变量的值。1. 共用体声明和共用体变量定义其形式为: union 共用体名{ 数据类型 成员名; 数据类型 成员名; ... } 变量名;下例表示声明一个共用体foo: union foo{转载 2012-08-27 09:29:49 · 3833 阅读 · 3 评论 -
字符串的倒序排列
#include #include "string.h"#include int main(){ char *src="Hello World"; int len=strlen(src); char *dest=(char *)malloc((len+1)*sizeof(char)); char *d=dest; char *s=&src[len-1]; wh原创 2012-08-27 13:45:32 · 2525 阅读 · 0 评论 -
C与C++中的&问题
test.c:#include void change (int *a,int &b,int c) { c=*a;b=3;*a=2; } int main() { int a=1,b=2,c=3; change(&a,b,c); printf("%d %d %d \n",a,b,c); return 0; }运行:Compiling...9.cd:\v原创 2012-09-05 16:46:54 · 1140 阅读 · 0 评论 -
C语言中比较两个字符串的大小
int h_strcmp(char *s1, char *s2){ int result, i; for (i = 0; *(s1+i) != '\0' && *(s2+i) != '\0'; i++) { if (*(s1+i) > *(s2+i)) return 1; else if (*(s1+i) < *(s2+i)转载 2012-09-27 08:31:33 · 11472 阅读 · 1 评论 -
函数指针的使用
#include int max(int x,int y){ return x>y?x:y;}int main(){ int max(int,int); int (*p)(int,int)=&max; int a,b,c,d; printf("Please input three integer \n"); scanf("%d %d %d",&a,&b,&c); d=(*原创 2012-09-11 08:25:08 · 716 阅读 · 0 评论 -
虚函数在构造函数中实现是要注意
#include using namespace std;class A{ public: virtual void display() { cout<<"A::display"<<endl; };};int main(){ A a; a.display(); return 0;}原创 2012-09-11 08:26:44 · 974 阅读 · 0 评论 -
C++中的引用对与错
正确:void swap(char &a,char &b){int x=a,y=b;x=x+y;y=x-y;x=x-y;a=x;b=y;}错误:void swap (char *a,char *b){x=x+y;y=x-y;x=x-y;*a=x;*b=y;}int main(){char a='a';char b='原创 2012-09-11 08:29:27 · 674 阅读 · 0 评论 -
C语言基础(二)
一、选择题(每小题2分,共10分)(下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。错选或漏选均不得分)。1、若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有( A,C,D,E )A、*(a+1)为元素6的地址 这里a+1=a[1]的地址;*(a+1)的值是6,故A正确。B、*(a[1]+转载 2012-09-13 19:17:08 · 2190 阅读 · 1 评论 -
strlen与sizeof
strlrn 计算字符串的长度时不会将'\0'计入在内,而sizeof会将'\0'计入在内。#include void main(){ static char string[20]="abcde"; printf("%d \n",strlen(string)); printf("%d \n",sizeof(string));}运行:520Press any key to原创 2012-09-13 19:02:35 · 610 阅读 · 0 评论 -
一道是死循环的题目
#include void main(){ int x,y; do{ //printf("%d \n",x); y=--x; if(!y) { printf("*"); continue; } printf("#"); }while(1<=x<=2);}这是个死循环,一直输出“#”,因为1<=x的值非原创 2012-09-20 21:38:48 · 847 阅读 · 0 评论 -
C语言中的!
#include void main(){int i=4;int j=!4;printf("%d \n",j);}可能不怎么注意。但他就是0.原创 2012-09-20 21:42:51 · 1735 阅读 · 2 评论 -
5分钟搞定内存字节对齐
怎么判断内存对齐规则,sizeof的结果怎么来的,请牢记以下3条原则:(在没有#pragma pack宏的情况下,务必看完最后一行) 1:数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小或者成员的子成员大小(只要该成员有子成员,比如说是数组,结构体等)的整数倍开始(比如i转载 2012-08-26 20:03:32 · 997 阅读 · 0 评论 -
用内联取代宏代码
8.5.1 用内联取代宏代码 C++ 语言支持函数内联,其目的是为了提高函数的执行效率(速度)。 在C程序中,可以用宏代码提高执行效率。宏代码本身不是函数,但使用起来象函数。预处理器用复制宏代码的方式代替函数调用,省去了参数压栈、生成汇编语言的CALL调用、返回参数、执行return等过程,从而提高了速度。使用宏代码最大的缺点是容易出错,预处理器在复制宏代码时常常产生意想不到的边际效应。例转载 2012-08-25 21:23:42 · 935 阅读 · 0 评论 -
D:\vcfile\4.c(6) : warning C4172: returning address of local variable or temporary
返回了局部或临时变量不是不能返回局部变量,是不能返回指向局部变量的指针和引用。原创 2012-08-29 16:50:33 · 4703 阅读 · 0 评论 -
写一函数int fun(char *p)判断一字符串是否为回文,是返回1,不是返回0,出错返回-1
#include int fun(char *p) { if(p==NULL) return -1; else { int length = 0; int i = 0; int judge = 1; length = strlen(p); for(i=0; i <length/2; i++) { if(p[i]!=p[length-1-转载 2012-08-29 15:44:30 · 14843 阅读 · 1 评论 -
关于函数返回值的几种情况
转自:http://patmusing.blog.163.com/blog/static/13583496020113191407531/在一个函数的内部,return的时候返回的都是一个拷贝,不管是变量、对象还是指针都是返回拷贝,但是这个拷贝是浅拷贝。 不是不能返回局部变量,是不能返回指向局部变量的指针和引用。1. 如果返回一个基本类型的变量,比如:i转载 2012-08-29 20:36:01 · 844 阅读 · 0 评论 -
C\C++语言基础细节(一)
全局变量本身就是静态存储方式,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期,把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。在不同的C文件中以static形式来声明同名全局变量。可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错static局部变量和普通局部变量有什么区别:static局部变量只被初原创 2012-08-31 15:13:20 · 1154 阅读 · 0 评论 -
指针与引用
一个数据对象的内存地址称为该数据对象的指针。指针与引用的区别:1、非空区别。在任何情况下都不能使用指向空值的引用,一个引用必须总是指向某些对象,而指针可以指向空值。不存在指向空值的引用这个事实意味着使用引用的代码效率比指针高。2、合法性区别。在使用引用之前不需要测试它的合法性。相反,指针则应该总是被测试,以防止其为空。3、可修改区别。指针可以被重新赋值以指向另一个不同的对象,而引用原创 2012-08-31 17:04:22 · 777 阅读 · 0 评论 -
全局变量在函数中改变
字符串中的字母变成大写:#include void uppercase(char *str){char* str_temp=str;while(*str_temp!='\0'){if((*str_temp>='a')&&(*str_temp<='z'))*str_temp-=('a'-'A');str_temp++;}}int main(){//char *str1原创 2012-08-25 20:46:48 · 4776 阅读 · 0 评论 -
关于“using namespace std”
对于一个存在着标准输入输出的C++控制台程序,一般会在#include 的下一行发现一句话,using namespace std。这句话其实就表示了所有的标准库函数都在标准命名空间std中进行了定义。其作用就在于避免发生重命名的问题。 1. 关于namespace C++引入了命名空间namespace主要解决了多个程序员在编写同一个项目中可能出现的函数等重名的现象。解决方法转载 2012-09-01 09:39:29 · 1034 阅读 · 0 评论 -
拷贝构造函数与赋值构造函数 浅拷贝和深拷贝
拷贝构造函数是在对象被创建时调用的,而赋值函数只能被已经存在了的对象调用。 不同点: 拷贝构造函数首先是一个构造函数,它调用的时候产生一个对象,是通过参数传进来的那个对象来初始化,产生的对象。 operator=();是把一个对象赋值给一个原有的对象,所以如果原来的对象中有内存分配要先把内存释放掉,而且还要检查一下两个对象是不是同一个对象,如果是的话就不做任何操作。 还要注意的是转载 2012-09-01 10:36:47 · 1783 阅读 · 0 评论 -
错误: expected declaration or statement at end of input
serialcom1.c: 在函数‘set_opt’中:serialcom1.c:136:1: 错误: expected declaration or statement at end of input这是因为大括号的少一个,括号的个数不成对,仔细在出错的函数中查找,即可。原创 2012-09-01 19:38:53 · 74634 阅读 · 1 评论 -
复制构造函数和类的组合
复制构造函数的作用:使用一个已经存在的对象(由复制构造函数的参数指定),去初始化同类的一个新对象。如果系统没有复制构造函数,系统会自动生成一个隐含的复制构造函数。例:#include using namespace std;class Point{public:Point(int xx=0,int yy=0){x=xx;y=yy;}Point(Point &原创 2012-08-31 20:33:46 · 1960 阅读 · 0 评论 -
C/C++程序员应聘常见面试题剖析
1.引言本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy 函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个strcpy 函数吗?我们都觉得自己能,可是我们写出的转载 2012-08-29 13:08:28 · 1766 阅读 · 0 评论 -
错误: ISO C++ 不允许声明无类型的‘set_opt’ [-fpermissive]
这个很明显是函数set_opt的返回类型问题,是你在实现set_opt函数时,忘了在函数前加返回类型了。原创 2012-09-02 07:55:33 · 7998 阅读 · 1 评论 -
switch变量的作用 域问题
转自:http://blog.chinaunix.net/uid-27103408-id-3340702.htmlswitch是我们做条件选择时,经常用到的一个语句。一直以来对于他的使用相信大家也都是得心应手,前几天在linux下写一个c++程序时遇到了这样的一个问题,请看例子:#includeusing namespace std;int main(){ i转载 2013-03-05 09:37:47 · 4415 阅读 · 1 评论