C/C++
IT小卒
这个作者很懒,什么都没留下…
展开
-
指针转换
#include int main(){unsigned int a=0xfffffff7;unsigned char i=(unsigned char)a; //发生字节剪断(3位和高于3位的将被程序自动丢弃)char* b=(char*)&a;// a本身为一个uint类型的值,把它赋给一个执行char类型数据的指针。影响的是指针的寻址printf("%08x,%0原创 2013-09-20 11:41:49 · 905 阅读 · 0 评论 -
ASCII码对照表
ASCII码对照表作者: BadcoffeeEmail: blog.oliver@gmail.comBlog: http://blog.csdn.net/yayong2004年12月最近写程序经常需要查ASCII码表,下面就把从网上找来的0-255的ASCII码表整理到一起,以备查阅。转载 2013-10-16 21:14:10 · 2270 阅读 · 0 评论 -
函数指针
#include #include int f(int i,int j){ return i+j;}int main(){ int (*fp)(int,int)=&f;//int (*fp)()=&f; printf("%d",(*fp)(2,3));//5}int (*p)[3] 数组指针,指向一个数组 int (*fp)()函数指针,指向一个函数摘自原创 2013-10-16 10:26:31 · 702 阅读 · 0 评论 -
指针参数的问题
#include #include int f(int *ptr){ ptr=(int *)malloc(sizeof(int)); *ptr=999; return 0;}int main(){ int *p,k=5; p=&k; f(p); printf("%d",*p);//5}解决这个问题,有两种:(一)利用函数返回值方法#include原创 2013-10-16 10:13:53 · 690 阅读 · 0 评论 -
字符串的不同存储位置
#includechar *gp="hello";//常量存储区char ga[]="hello";//静态存储区char *foo(){ char *p="hello"; //常量存储区 char a[]="hello"; //栈 p[0]='z'; //常量不能改 gp[0]='z'; //常量不能改 gp=a; gp[0]='z';//可以 return a;原创 2013-10-16 09:54:41 · 924 阅读 · 0 评论 -
C++ 基础教程
http://www.prglab.com/cms/原创 2013-10-11 17:11:21 · 581 阅读 · 0 评论 -
堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两转载 2013-09-24 15:35:42 · 1122 阅读 · 1 评论 -
C语言的细节(一)
#include void main(){ int i[5]={1,5,3,4,5}; int *p=i; //*p++; printf("%d",++*p++);//2 printf("%d",*p);//5 //printf("%d",*p); //printf("%d",-5/3); //printf("%d\n",5/-3); //printf("%d\n",5%原创 2013-10-10 10:35:49 · 990 阅读 · 0 评论 -
C语言除法运算符“/”和求余运算符“%”
看似两个很简单的运算符,却也真要掌握用好它也不容易,本文作为关于此类运算符的各方面的问题的汇总,希望对你我都有一些帮助。 除法运算符“/”。二元运算符,具有左结合性。参与运算的量均为整型时,结果为整型,舍去小数。如果运算量中有一个为实型,结果为双精度实型。例如:5/2=2,1/2=05/2.0=2.5 求余运算符“%转载 2013-10-10 10:18:42 · 10448 阅读 · 0 评论 -
内联函数和宏定义
在计算机科学中,内联函数(有时称作在线函数或编译时期展开函数)是一种编程语言结构,用来建议编译器对一些特殊函数进行内联扩展(有时称作在线扩展);也就是说建议编译器将指定的函数体插入并取代每一处调用该函数的地方(上下文),从而节省了每次调用函数带来的额外时间开支。但在选择使用内联函数时,必须在程序占用空间和程序执行效率之间进行权衡,因为过多的比较复杂的函数进行内联扩展将带来很大的存储资源开支。另外还原创 2013-09-21 16:24:57 · 865 阅读 · 0 评论 -
C语言两种方法实现字符串反转
转http://www.cyrec.org/posts/c-string-reverse#include #include #include int strReverse(char *to,char *from){char *ptr;to=(char*)malloc(strlen(from)+1);ptr=to;while(*from){from转载 2013-09-21 20:09:27 · 11356 阅读 · 0 评论 -
指针笔试题(一)
#include void GetMemory(char *p,int num){ p=(char *)malloc(sizeof(char)*num);}int main(){ char *str=NULL; GetMemory(str,100); strcpy(str,"hello"); return 0;}注:p申请了新内存,只是把p所原创 2013-09-21 17:09:22 · 808 阅读 · 0 评论 -
指针
指针是一个指向内存中某个位置的地址。可以动态分配内存。 引用与指针的区别? 引用其实就是别名,它用于定义一个变量来共享另一个变量的内存空间。 指针指向另一个内存空间的变量,可以通过它来索引另一个内存空间的内容,而指针本身也有自己的内存空间。原创 2013-09-18 20:18:21 · 748 阅读 · 0 评论 -
int *a; int &a; int & *a; int * &a
转http://www.cnblogs.com/netqer/archive/2008/10/20/1315386.htmlint i;int *a = &i;//这里a是一个指针,它指向变量iint &b = i;//这里b是一个引用,它是变量i的引用,引用是什么?它的本质是什么?下面会具体讲述int * &c = a;//这里c是一个引用,它是指针a的引用转载 2013-09-21 15:18:05 · 924 阅读 · 0 评论 -
关于字符串指针不可修改的问题
转自http://www.cnblogs.com/CBDoctor/archive/2012/09/27/2705776.htmlC/C++ codechar*m ="hello"; *(m+1) ='s'; for(;*m !='\0';m++){ printf("%c\n",*m); }但是出运行时错误。-------------------------转载 2013-09-21 10:59:14 · 875 阅读 · 0 评论 -
冒泡排序
#include #define LENGTH 8 void main() { int tmp, number[LENGTH] = {95, 45, 15, 78, 84, 51, 24, 12}; /* for (i = 0; i < LENGTH; i++) { for (j = LENGTH - 1; j > i; j--) {原创 2013-10-22 11:25:49 · 882 阅读 · 0 评论