void 与 return 的矛盾(thinking in C++) [问题点数:23分,结帖人yumengshuyuan]

Bbs1
本版专家分:0
结帖率 100%
Bbs2
本版专家分:191
Blank
红花 2002年9月 其他开发语言大版内专家分月排行榜第一
Blank
黄花 2011年10月 其他开发语言大版内专家分月排行榜第二
2004年10月 其他开发语言大版内专家分月排行榜第二
2003年7月 其他开发语言大版内专家分月排行榜第二
Blank
蓝花 2011年9月 其他开发语言大版内专家分月排行榜第三
2011年5月 其他开发语言大版内专家分月排行榜第三
2004年7月 其他开发语言大版内专家分月排行榜第三
2002年6月 其他开发语言大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:5
Bbs6
本版专家分:5560
Blank
银牌 2001年5月 总版技术专家分月排行榜第二
2001年4月 总版技术专家分月排行榜第二
Blank
红花 2001年6月 C/C++大版内专家分月排行榜第一
2001年5月 C/C++大版内专家分月排行榜第一
2001年4月 C/C++大版内专家分月排行榜第一
2001年4月 C++ Builder大版内专家分月排行榜第一
Blank
蓝花 2001年7月 C/C++大版内专家分月排行榜第三
2001年5月 C++ Builder大版内专家分月排行榜第三
2001年3月 C++ Builder大版内专家分月排行榜第三
Bbs6
本版专家分:5560
Blank
银牌 2001年5月 总版技术专家分月排行榜第二
2001年4月 总版技术专家分月排行榜第二
Blank
红花 2001年6月 C/C++大版内专家分月排行榜第一
2001年5月 C/C++大版内专家分月排行榜第一
2001年4月 C/C++大版内专家分月排行榜第一
2001年4月 C++ Builder大版内专家分月排行榜第一
Blank
蓝花 2001年7月 C/C++大版内专家分月排行榜第三
2001年5月 C++ Builder大版内专家分月排行榜第三
2001年3月 C++ Builder大版内专家分月排行榜第三
Bbs1
本版专家分:20
Bbs1
本版专家分:0
Blank
红花 2001年7月 Java大版内专家分月排行榜第一
2001年6月 Java大版内专家分月排行榜第一
Bbs1
本版专家分:78
Bbs1
本版专家分:0
return false;"">javascript:void(0) nclick="return false;"
不太明白,标签 a 这样写后,是怎么连接别的页面的。没百度到,谁告诉我一下
又问个小问题啦(void,return
一个比较细节的问题,如下rn[color=#FF0000]<em>void</em>[/color] inv(int *sp,int n)rnrn int *i,*j;rn int m=(n-1)/2,temp;rn i=sp;rn j=i+n-1;rn for(;i<=sp+m;i++,j--)rn rn temp=*i;rn *i=*j;rn *j=temp;rn rn [color=#FF0000]<em>return</em>;[/color]rnrn边看边写时发现这个问题,既然函数被定义为<em>void</em>不返回的话,完全没必要写<em>return</em>了吧,但是书上加个<em>return</em>是什么意思呢?是不是纯粹是废代码?
void函数里return有什么用呢
<em>void</em> mazeTraversal(char maze[12][12],int x<em>C</em>oord,int y<em>C</em>oord,int direction)rnrn rn maze[x<em>C</em>oord][y<em>C</em>oord]='o';//将走过的路径用o来表示rn printMaze(maze);//打印迷宫rn if(coordsAreEdge(x<em>C</em>oord,y<em>C</em>oord) && x<em>C</em>oord!=X && y<em>C</em>oord!=Y)rn rn cout<<<4;++count,++move,move%=4)rn switch(move)rn rn case DOWN:rn if(validMove(maze,x<em>C</em>oord+1,y<em>C</em>oord))rn rn mazeTraversal(maze,x<em>C</em>oord+1,y<em>C</em>oord,LEFT);rn <em>return</em>;rn rn break;rn case RIGHT:rn if(validMove(maze,x<em>C</em>oord,y<em>C</em>oord+1))rn rn mazeTraversal(maze,x<em>C</em>oord,y<em>C</em>oord+1,DOWN);rn <em>return</em>;rn rn break;rn case UP:rn if(validMove(maze,x<em>C</em>oord-1,y<em>C</em>oord))rn rn mazeTraversal(maze,x<em>C</em>oord-1,y<em>C</em>oord,RIGHT);rn <em>return</em>;rn rn break;rn case LEFT:rn if(validMove(maze,x<em>C</em>oord,y<em>C</em>oord-1))rn rn mazeTraversal(maze,x<em>C</em>oord,y<em>C</em>oord-1,UP);rn <em>return</em>;rn rn break;rn rn rnrn函数里面一定要有<em>return</em>,如果没有,它就会继续地执行下去不停止,为什么呢?它为什么在出口处执行停止,而回到入口是不会停止呢?各位老师,达人,谢谢了……
'void' return type assumed 是什麼意思
'<em>void</em>' <em>return</em> type assumed 是什麼意思
Java中voidreturn、返回值的详解
1
void型函数最后的return是什么意思?
今天看谭浩强的书,里面有一些程序中自定义的一个<em>void</em>型的函数的最后一句是<em>return</em>;,这是什么意思,有什么作用?
C#中void函数还要不要return;?
首先:像这样的函数rnint hanshu()rnrn <em>return</em> xx;//肯定是要<em>return</em>的rnrn但是:rnstatic <em>void</em> Main(string[] args)rnrn //这样的函数我习惯不用什么<em>return</em>;就算在特别时候也用的很勉强. rnrn如果是自己定义的子函数或事件函数.rn<em>void</em> zidingyi(int k)rnrnrnprivate <em>void</em> btn_Str_<em>C</em>lick(object sender, EventArgs e)rnrnrn这样的我只有需要提前退出函数(方法)时才用<em>return</em>;的.rn----------------------------------------------------------------------------------------------rn反编译*.exe后发现原程序添加了很多this.但是没加什么<em>return</em>;是不是<em>C</em>#里不用管什么返回到调用处的下行之类的东西啊?rnrn rn
thinking in c c编程思想
java阵营很多人都知道<em>thinking</em> in java c也有thingking in c哦
return (void**)((BYTE*)p + m_nNextOffset); 问题
搞不懂这段代码。有谁指点下啊。windows编程里面的。rnrnrninline <em>void</em>** <em>C</em>SimpleList::GetNextPtr(<em>void</em>* p) constrn <em>return</em> (<em>void</em>**)((BYTE*)p + m_nNextOffset);
void方法返回处,需不需要return
<em>void</em> main 在新标准中是错误的。 main() 返回一个整型给调用它的程序。int 返回类型是可以省略的(但不建议)。 不返回值并不代表函数没用。它可以输出信息,读写文件等干很多别的事情。在 <em>C</em> 语言中,也可以给函数传递指针参数,让函数修改相应的内存空间数据,这样函数返回后,传入指针所指向的数据已经改变了,变相达到返回结果的目的(这在 <em>C</em> 中很常见)。 没有 <em>return</em> (但函数未声明为...
void返回值return;有必要吗?为什么?
RT,我看很多函数都是<em>void</em>型,但是返回值为<em>return</em>;rn有必要吗?还是仅仅为了好看或者以后调试方便什么的。。。rnrn
returnvoid比較的迷惑.
<em>return</em> 是否可以返回給自身class的方法,如rnString a(c)rn<em>return</em>(b(d,e));rnrnString b(k,f)rn...rnrn那麽<em>void</em>是否,只是用來返回變量對象的引用,是否給別的類當方法用,那麽自己身類呢?如rn<em>void</em> a(String b)rnthis.b =brnrn我可以把問題講的不太清楚,請各位幫我解釋下,感激...
C语言中的voidvoid*的定义及用法
<em>void</em> <em>void</em>最常见的用法,就是在函数中限定函数的参数和返回值的 <em>void</em> draw(<em>void</em>); 表明函数draw没有参数也没有返回值,<em>void</em>在别的的地方的应用我也没见过; 实际上,如果把<em>void</em> 和int,char,double等类型放到一起理解的话,首先还是那句揭示本质的话:变量类型就是固定大小内存块的别名,那么<em>void</em>占用多大内存呢,编译器并没有定义<em>void</em>占用多大内存,所以对于...
C语言中的voidvoid指针-void*
<em>void</em> 关键字 <em>void</em>指针的作用 使用方式 <em>void</em>指针与函数 <em>void</em> 关键字 当函数返回值为空时,可以使用<em>void</em>。 <em>void</em> empty(int a); 当函数参数列表为空时,可以使用<em>void</em>。 <em>void</em> empty(<em>void</em>); <em>void</em>指针的作用 <em>void</em>指针:<em>void</em> * 可以用其指代任何类型的指针。 但不能用<em>void</em>指针...
C语言中 *(void (*)(void))0xa0001000; 什么意思?
<em>C</em>语言中 *(<em>void</em> (*)(<em>void</em>))0xa0001000; 什么意思? rnrn有高手说是 定义一个指向数组的指针 为什么是这样呢???
关于c函数指针的问题 void *(*)(void *)
extern int pthread_create (pthread_t *__restrict __newthread,rn __const pthread_attr_t *__restrict __attr,rn <em>void</em> *(*__start_routine) (<em>void</em> *),rn <em>void</em> *__restrict __arg) __THROW __nonnull ((1, 3));rnrnpthread.h头文件里面的创建线程的定义 其中第三个参数是处理函数的指针rn形式是 <em>void</em> *(*__start_routine)(<em>void</em> *)rnrn我现在仿照他的形式自己定义了一个 <em>void</em> *(*test)(<em>void</em> *)rn编译的时候报错 ,信息如下rnmutithread.c:18: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘’ tokenrnrn我搞不清楚这个是为啥啊 ,这种形式我也能理解 ,但是为啥报错啊?rn不可以这样定义吗?rn
c 中的void
[code=<em>C</em>/<em>C</em>++]rn #include rn#include rnrnint main(int argc, char *argv[])rn rn char s[] = "wwwww";rn convertToUppercase(s);rn rn printf("%s\n",s); rn system("PAUSE"); rn <em>return</em> 0;rnrnrn[color=#FF0000]<em>void</em>[/color] convertToUppercase(char *s)rn while(*s !='\0')rn if(*s>='a'&&*s)rn *s -=32;rn ++s;rn rn rnrnrn[/code]rnrn为什么加了<em>void</em> 就报错了?为什么必须吧<em>void</em>函数放在main方法之前?为什么要定义函数原型?c中的<em>void</em>都有什么作用?
C语言--void指针参数
<em>C</em>语言–函数的传参(pointer)c语言中有一种通用指针,<em>void</em> * 类型指针,该指针在<em>C</em>中很常见,通常用于针对不同类型参数的函数。 例如,以下函数将对任何类型的数据清零。<em>void</em> test(<em>void</em> *data, size_t n) { memset(data, 0x00, n); }可以将任何类型的指针传递给test函数而不需要cast。 int ax = 10; t
c语言void
1.<em>void</em>有2种用法:没有返回值;对函数参数的限定。2.<em>void</em>*可以指向任何类型数据,<em>void</em>*表示无类型如:①<em>void</em> * p1;int *p2;p1=p2; 则程序报错②p2=p1;则程序正确解释原因:打个比方,“吉野家和金拱门都是快餐店”,但是不能说“快餐店是金拱门”3.iostream库里memset指向一片空的内存,可以定义任何数据类型链接:https://baike.baidu.c
《Thinking in C++》:void** st = new void*[length];该语句(void*)加上括号就不行了,为什么?
出自<em>C</em>++编程思想第二版第一卷311页rn编译能通过,但是build时就说语法有错。rn理论上说,开辟型(<em>void</em>*)数组时用括号不是语法上更明确么?
voidvoid指针(C,C++)
<em>void</em>及<em>void</em>指针(<em>C</em>,<em>C</em>++)
C语言(void *)的用法
(<em>void</em> *)p = NULL; int a; char b; float c; double d; p = &amp;amp;amp;a; p = &amp;amp;amp;b; p = &amp;amp;amp;c; p = &amp;amp;amp;d; 由上面的代码可以看出(<em>void</em> *)定义的变量是可以接受任何类型的变量。 也就是说(<em>void</em> *) 为 “不确定类型指针”,<em>void</em> *可以用来声明指针。 ...
c语言指针之void
<em>void</em>有两种使用使用场景: 如果函数没有返回值或者参数,那么应该声明为<em>void</em>。声明一个<em>void</em>的指针类型,对于<em>void</em>的指针类型,它只保存了一个地址,不包含指向变量的指针类型,因此,任何类型的指针变量都可以赋值给它,而不需要类型转换 // //  main.c //  pointer1 // //  <em>C</em>reated by eric wang on 15/12/10.
returnC语言中return的妙用
<em>return</em>是个好东西 第一个作用,也就是他的真实作用 返回值,这个返回值是和函数的类型有关的,函数的类型是什么,他的返回值就是什么 比方主函数int main() {}这里就必须有一个<em>return</em>,只有<em>void</em>时可以不用返回值。 功能函数 int fun() { <em>return</em> 1; } 这个时候fun函数的作用就是返回一个int 类型的值,可以直接拿来用比方int a=...
void">CC++区别之 "..."与void
各位高手,rn 我在<em>C</em>下编的函数,在将原文件更名为<em>C</em>++后报2个错,rn如:<em>void</em> interrupt (far *Old101Key)(<em>void</em>)rnrn一是连接不过去,告诉我不能将...与<em>void</em>类型转换,rn二是提示"old101key"没有定义,而不是"Old101Key"rnrn将函数变为<em>void</em> interrupt (far *Old101Key)(...)后就一切正常了,这是为什么呀rnrn编译器bc++3.1
C语言void关键字
<em>void</em>关键字1.类型: <em>void</em> 是“空类型”。 <em>void</em> 则为“空类型指针”,<em>void</em> 可以指向任何类型的数据。 2.<em>void</em> 作用: 对函数返回的限定 对函数参数的限定<em>void</em> a说明:因为<em>void</em>为无类型,在内存中偏移量为0,它声明变量a,a在内存中没有空间,所以无法定义且后面无法赋值从而报错。 变量赋值条件: 1.”=”左边要指向一个有效的地址 2.”=”左边指向的有效
C语言中的void
无类型在<em>C</em>语言中,是一种抽象类型不针对实体,无类型不可以参与任何运算。在<em>C</em>语言中<em>void</em>,应用于函数返回值,和指针上。 int main() { <em>void</em> *p = NULL; printf("%d"sizeof(p)); printf("%d"sizeof(*p)); <em>return</em> 0; } 上述代码不能编译通过,错误在于第二个输出,对于无类型指针不能对其进行解引用。 在指针方面,无类...
c中return(0);return(-1)区别???
c中<em>return</em>(0);<em>return</em>(-1)区别???
C语言return用法
本文详细介绍了<em>C</em>语言<em>return</em>的各种用法。
c语言return用法
详细的<em>return</em>用法,各类使用方法都在其中
C语言 return 问题
[code=<em>C</em>/<em>C</em>++]rn 1 #includern 2 char* fun()rn 3 rn 4 char *str="here is string ";rn 5 <em>return</em> str;rn 6 rn 7 char* fun1()rn 8 rn 9 char str[100]="here is array ";rn 10 <em>return</em> str;rn 11 rn 12 int fun2()rn 13 rn 14 int a=10;rn 15 <em>return</em> a;rn 16 rn 17 char* fun3()rn 18 rn 19 char str[]="here is array ";rn 20 <em>return</em> str;rn 21 rn 22 <em>void</em> main()rn 23 rn 24 printf("%s \n",fun());rn 25 printf("%s \n",fun1());rn 26 printf("%d \n",fun2());rn 27 printf("%s \n",fun3());rn 28 rnrn[/code] rnrn<em>return</em>语句不可返回指向“栈内存”的“指针”或者“引用”,因为该内存在函数体结束时被自动销毁 为什么fun() fun1() fun2() 都可以正常返回
c语言的return问题
<em>return</em> 用来终止一个函数并返回其后面跟着的值。<em>return</em> (Val);//此括号可以省略。但一般不省略,尤其在返回一个表达式的值时。<em>return</em> 可以返回些什么东西呢?看下面例子:char * Func(<em>void</em>) { char str[30]; … <em>return</em> str; //此处不加()可能不能实现返回值的功能。 }str 属于局部变量,位于栈内存中,在Func 结束
讨论return +"c:"的问题?
看到一个贴子,有语句<em>return</em> +"c:";竟然没事,还可以用,写了一个程序测试,rn如下rnAnsiString TForm1::test()rnrn <em>return</em> +"c:";rnrn//---------rn<em>void</em> __fastcall TForm1::Button1<em>C</em>lick(TObject *Sender)rnrn ShowMessage(this->test());rnrn运行后,输出 c:rn这个+在这里是什么意思,作什么的?有害吗?有用吗?rn
c语言中return
一个函数里边允许有多个<em>return</em>,但是一个函数只执行一次<em>return</em>,执行了<em>return</em>以后该函数就结束了
C语言中的return
<em>return</em>是<em>C</em>++预定义的语句,它提供了种植函数执行的一种放大。当<em>return</em>语句提供了一个值时,这个值就成为函数的返回值.
C语言 return不等式
#include int fun(int a, int b) { <em>return</em> a < b; } int main(<em>void</em>) { int a, b; while(scanf("%d%d", &a, &b) != EOF){ if(fun(a, b)) printf("true\n"); else
Thinking in c ++ 第二版
Thinking in c++ 编程. c++编程思想
Thinking in C 英文版
Thinking in <em>C</em> 英文原版,doc格式,方便移动设备观看。
Thinking C 中文版下)
Thinking <em>C</em> 中文版
thinking in c edition 2
计算机经典著作 计算机经典著作\[计算机科学经 计算机经典著作\[计算机科学经 计算机经典著作\[计算机科学经
void (*run)(void) = (void (*)(void))0x0;
<em>void</em> (*run)(<em>void</em>) = (<em>void</em> (*)(<em>void</em>))0x0;rn这句话什么意思阿,没见过这样的阿
void *和void**
[code=<em>C</em>/<em>C</em>++]rn#includern#includern#includernrn#define DEBUGrn#define BOOL intrn#define MAX_STA<em>C</em>K_SIZE 100rn#define TRUE 1rn#define FALSE 0rnrntypedef structrnrn <em>void</em> *value;rnsnode_t;rnrntypedef structrnrn snode_t base[MAX_STA<em>C</em>K_SIZE];rn int top;rnstack_t;rnrnBOOL InitStack(<em>void</em> **pstack)rnrn stack_t *stack;rnrn if (NULL == pstack)rn <em>return</em> FALSE;rnrn stack = (stack_t*)malloc(sizeof(stack_t));rn if(NULL == stack)rn <em>return</em> FALSE;rn memset(stack,0,sizeof(stack_t));rn *pstack = stack;rn <em>return</em> TRUE;rnrnrn<em>void</em> DestroyStack(<em>void</em> **pstack, <em>void</em>(*snode_free)())rnrn stack_t *stack;rn int i;rn if(NULL == pstack || NULL == *pstack)rn <em>return</em>;rn stack = (stack_t*)*pstack;rn for(i = 0; i < MAX_STA<em>C</em>K_SIZE; ++i)rn rn if(stack->base[i].value)rn rn (*snode_free)(stack->base[i].value);rn stack->base[i].value = NULL;rn rn rn free(stack);rn *pstack = NULL;rnrnrn<em>void</em> <em>C</em>learStack(<em>void</em> **pstack, <em>void</em> (*snode_free)())rnrn stack_t *stack = (stack_t*)pstack;rn int i;rn if(NULL == stack)rn <em>return</em>;rn for(i = 0; i < MAX_STA<em>C</em>K_SIZE; ++i)rn rn if(stack->base[i].value)rn rn (*snode_free)(stack->base[i].value);rn stack->base[i].value = NULL;rn rn rn stack->top = 0;rnrnrnBOOL StackEmpty(<em>void</em> *pstack)rnrn stack_t *stack = (stack_t*)pstack;rnrn if(NULL == stack)<em>return</em> TRUE;rn if(0 == stack->top)<em>return</em> TRUE;rnrn <em>return</em> FALSE;rnrnrnint StackLength(<em>void</em> *pstack)rnrn stack_t *stack = (stack_t*)pstack;rn if(NULL == stack) <em>return</em> -1;rnrn <em>return</em> stack->top;rnrnrnBOOL PushStack(<em>void</em> *pstack, <em>void</em> *value)rnrn stack_t *stack = (stack_t*)pstack;rn if(NULL == stack || NULL == value)<em>return</em> FALSE;rn if(MAX_STA<em>C</em>K_SIZE == stack->top) <em>return</em> FALSE;rn stack->base[stack->top++].value = value;rn <em>return</em> TRUE;rnrnrnBOOL PopStack(<em>void</em> *pstack, <em>void</em> *pvalue)rnrn stack_t *stack = (stack_t*)pstack;rnrn if(NULL == stack || NULL == pvalue)<em>return</em> FALSE;rn if(0 == stack->top) <em>return</em> FALSE;rn *((<em>void</em> **)pvalue) = stack->base[--(stack->top)].value;rn stack->base[stack->top].value = NULL;rn <em>return</em> TRUE;rnrnrn#ifdef DEBUGrnrnint main(int argc,char *argv[])rnrn int i, *p, err = 0;rn <em>void</em> *s;rn if(FALSE == InitStack(&s))rn rn printf("InitStack Failed\n");rn <em>return</em> -1;rn rn for(i = 0; i < 10; ++i)rn rn p = (int *)malloc(sizeof(int));rn *p = i;rn if(FALSE == PushStack(s,(<em>void</em>*)p))rn rn printf("PushStack Failed\n");rn err++;rn break;rn rn rn if(err == 0)rn rn while(TRUE == PopStack(s,(<em>void</em>*)&p))rn rn printf("get a ele from stack:%d\n", *p);rn free(p);rn rn rn DestroyStack(&s,free);rn <em>return</em> 0;rnrn#endifrn[/code]rn这是一个堆栈的数组实现。rn初始化的时候为什么不是传<em>void</em> *,而是传了<em>void</em> **rn<em>void</em>*和<em>void</em> **到底怎么用?rn<em>void</em> <em>C</em>learStack(<em>void</em> **pstack, <em>void</em> (*snode_free)());这里也不是很懂。rn虚心求教。
void* void**
谁能介绍一下<em>void</em>* <em>void</em>**的使用,最好加点简短的代码示意,thx
关于void *和(void *)和void **的问题
就像下面这两个函数定义中的rnint pthread_creat(pthread_t *thread, pthread_attr_t *attr, <em>void</em>*(*strat_routine)(<em>void</em> *), <em>void</em> *arg);rn中的<em>void</em> *(*start_routine)(<em>void</em> *)是什么意思?rn还有下面这个例子rnint pthread_join(pthread_t th, <em>void</em> **thread_<em>return</em>);rn中的<em>void</em> **thread_<em>return</em>是什么意思?rnrn谢谢
是不是矛盾了?
<>中说:rn1: 如果函数的参数表中,只有缺省实参不同,则第二个声明被视为第一个的重复声明:rn如:rn[code=<em>C</em>/<em>C</em>++]rnint max(int *ia, int sz);rnint max(int *, int = 10);rn[/code]rnrnrn2: 函数的后继声明中可以指定其他缺省实参,如:rn[code=<em>C</em>/<em>C</em>++]rnint ff(int i, int j, int k = 0);rnint ff(int i, int j = 0, int k);rn[/code]rnrn1和2是不是<em>矛盾</em>了?请解释!rn谢谢!
矛盾的变量值??
var n = 1; rnrnvar m = n; rnrnrnfunction add_to_total(total, x) rnrn rnrn total = total + x; rn rnrnadd_to_total(n, m); rnrndocument.write(n+" ");//输出 1 rn[color=#FF0000]document.write(m+" ");//输出 1 rnif(m=2)alert(88) [/color]rnm 值到底是 1 还是 2 ?
bugku——矛盾
打开链接后得到一段代码,从这段php代码中能够读出判断获取的是否是数字,然后获取值是否为1,百度了一下php判断字符串以1开头即可判断等值,于是构造num=1,ox表示拼接字符串,即可获取flag...
bugku 矛盾
bugku <em>矛盾</em> is_numeric()这个函数,检查参数,是否为数字,如果是数字,返回true,不是返回假。题目要求我们传递一个不为数字得值,且与1比较,为真。这里其实用到的应该是弱比较,但不知道为什么行不通。在php官网里说:“1”==1是为真的,但是在if()语句里却不行,不知道为什么。(构造num="1"的话,是不行的) 去网上看了其他人的payload,发现可以用数学思想, pay...
引用的矛盾?
如果要用引用,必须再定义同时给引用付一个值,例如:int bs=8;rn int & as=bs;rn但在利用引用传递参数的时候,并没有付值,例如:int fond( int &);这里的参数在编译前并没有付值.为什么在主函数里的调用fond(bs)却可以呢? rn 编译器不是只能检查语法错误,并不能进行取数操作吗?那样的话,( int &)并没有付值,怎么可以编译成功呢?rn
学习的矛盾
我是一名大二的学生,方向是移动开发,大学第一学期学c++,只学到指针。第二学期学数据库,c#;可以做一个小小的项目。今学期要学asp.net、javascript、android应用开发、flex开发。我好<em>矛盾</em>,学这么多语言,一个学期到来都只学到皮毛,但是因为有c++语言和其他语言的基础,学习新的语言会更快。但我想问:学校要我们学这么多语言,为什么不一种语言学深入一点,现在我的水平都是学过的语言的基础,而且有时候会混乱语法。很<em>矛盾</em>,大伙给点建议好吗?
c语言的“逻辑短路”与 运算符优先级,有点矛盾
c规定:&& 的优先权要高于 ||rnc优化:在“exp1 && exp2” 中如果exp1为false,则不再计算exp2的值 rnc优化:在“exp1 || exp2” 中如果exp1为true,则不再计算exp2的值 rnrn那么:rnint a=1;rnint b=1;rnint c=1;rnint d;rnrnd=a>0 || ++b>1 && c++>1 rnrnrn按照规定, 要先计算 && ,也就是需要计算出 ++b和c++rn按照优化, 只要计算出 a>0 就可以了,不需要计算出 ++b和c++rnrn我看《<em>C</em> 语言解惑》里面讲:应该按照优化计算,rnx=1,y=1,z=1;rn++x || ++y && ++z 只要计算++x即可以rn如此说来 (exp1 || exp2 && exp3)和(exp2 && exp3 ||exp1)会有不同的结果,这也不符合生活习惯呀。这难道是“++副作用”rnrnrn到底应该如何?rnrnrnrnrnrnrn
c语言学习笔记33之void
<em>void</em> *指针是一种特殊的指针,不指向任何类型的数据,如果需要用此地址指向某类型的数据,应先对地址进行类型转换。可以在程序中进行显式的类型转换,也可以由编译系统自动进行隐式转换。无论用哪种转换,大家必须了解要进行类型转换 指针变量可以有空值,即该指针变量不指向任何变量,可以这样表示:  p=NULL; const取自英文单词constant,是“恒定、不变”的意思,早期的<em>C</em>语言并没有con
C 语言中的 (void *) str
Hi,我在一段<em>C</em>代码里有如下定义,rn[code=c]rn#include rnint main(<em>void</em>)rnrn <em>void</em> *str = "hello world";rn printf("%s\n", (<em>void</em> *)str);rn <em>return</em> 1;rnrn[/code]rn代码输出"hello world"rn其中这个 (<em>void</em> *) str起到什么作用吗,毕竟正常情况下是这样的:printf("%s\n", str);rn如果我改成 (int *) str也是可以正常运行的。rn所以不知道这个(<em>void</em> *)有什么作用?在一些其他代码里也经常会看到类似(<em>void</em> **) 的情形。rn在<em>C</em>语言里这个语法叫什么?rn
C语言的void*指针使用
#include #include //<em>void</em> *可以是任意类型的数据,任意类型都可以存储,也可以转换任意类型 int main(){ //例1:将普通指针变量赋值给<em>void</em>*指针并打印输出 int pa = 100; int *p = &pa; <em>void</em> * v = p; printf("v=%d \n",*((int*)v)); //例2:通过<em>void</em>*指针修改
C语言中的泛型编程(void *)
<em>C</em>语言中的泛型编程(<em>void</em> *)简介:之前有写过关于<em>C</em>++的泛型编程,使用template来实现的,也包括了一些函数模板,类模板的一些概念,那么在纯<em>C</em>的实现中,能不能也有这样的泛型?答案当然是可以的,这个时候就有必要使用所谓的万能指针,因为万能指针可以转换成其他的数据类型指针对象,这个时候就可以实现类型转换啦。提示: 博主:章飞_906285288 博客地址:http://blog.cs
c / c++ null 0 (void*)
在V<em>C</em>中, 空指针被定义成:rnrn#ifndef NULLrn#ifdef __cplusplusrn#define NULL 0rn#elsern#define NULL ((<em>void</em>*) 0)rn#endifrn#endifrnrnrn为什么c 与c++ 的不一样
Linux c — void类型变量和指针
Linux c — <em>void</em>类型变量和指针1.什么是<em>void</em>?<em>void</em>在英文中形容词的意思就是无效的,空的,空虚的意思,在<em>C</em>语言中就是空类型的意思。 在<em>C</em>语言中,使用<em>void</em>这个类型时,有如下规则:<em>void</em> 只能修饰函数,不能修饰变量 <em>void</em> * 函数、变量都可以被修饰2.<em>void</em>的使用2.1 <em>void</em>修饰变量用<em>void</em> 定义一个a,编译后会报错<em>void</em> a; //<em>void</em>.c: 在函数‘mai
typedef VOID (*A)(B *C);
怎么解释阿rn这是个函数指针(指针函数?),B是一个定义的类型,<em>C</em>是这个类型的指针,那么typedef是干什么的rnrn前面忘记了,这条语句后面有个分号。
C语言学习笔记5——void
<em>void</em> 的意义 在<em>C</em>语言中: <em>void</em>修饰函数返回值和参数 <em>void</em>修饰函数返回值和参数是为了表示 “无” · 如果函数没有返回值, 那么应该将其声明为 <em>void</em> · 如果函数没有参数, 应该声明参数为 <em>void</em> <em>void</em> 的分析1:<em>void</em>变量 不存在<em>void</em>变量, <em>C</em>语言中没有定义<em>void</em>究竟是多大内存的别名 #include int main() {
C语言。void类型函数。
最近在看小谭的<em>C</em>。有个小问题。rn为什么用<em>void</em>定义被调函数中有<em>return</em>语句。rn<em>void</em>不是定义了函数不带回函数值吗?为什么还用<em>return</em>语句。??rn请指教。
C语言free(void*)的问题
在<em>C</em> Primer Plus(第五版)第十七章中有这样一段代码rn[code=<em>C</em>/<em>C</em>++]rn /* Program done, so free allocated memory */rn current = head;rn while (current != NULL)rn rn free(current);rn current = current->next;rn rn printf("Bye!\n");rn[/code]rnhead是一个指向一个链表的头元素的指针rn这段代码的作用是释放这个链表malloc的内存rn但是我有一个疑问:rncurrent既然已经free了,怎么还能使用current->next呢?运行居然也是没报错的?为什么呢?rn是不是应该改成rn[code=<em>C</em>/<em>C</em>++]rn /* Program done, so free allocated memory */rn current = head;rn while (current != NULL)rn rn head=current->next;rn free(current);rn current = head;rn rn printf("Bye!\n");rn[/code]rn
模块化与性能。在C语言里相互矛盾
有一个功能较复杂的模块A,里面有很多数据rn现代编程风格么,一个函数写的太大不好,于是按处理步骤拆分出函数B,<em>C</em>等rn可是,B,<em>C</em>里需要A里的很多数据rn<em>C</em>语言不允许嵌套函数,因此只好把B,<em>C</em>用到的数据全部作为参数传进去调用rn可是B,<em>C</em>这样的函数根本就不会在A以外调用,根本就是这种只在一处调用的内部实现函数,那么无端浪费这样的传参数开销是何苦呢?rn举例就类似这样的rnrn<em>void</em> A(...)rnrnTYPE_X x;rnTYPE_Y y;rnTYPE_Z z;rn....rn....rnB(&x,&y,&z);rn....rn<em>C</em>(&x,&y,&z);rn....rnrn附带说一下,B,<em>C</em>也不是那种极为短小的小函数,inline不可能对编译器起作用的。(再说inline也不是<em>C</em>89标准,跨平台性都无法保证)rn为了性能,难道唯一的办法是放弃函数B,<em>C</em>把代码全堆A里么?我不敢这么乱来,怕代码可读性没了。。
目前的矛盾
我一直在想,现在年轻的我们应该做些什么,很羡慕那种有班加到12点公司,但是目前的公司貌似没有这种条件,我们基本上下班之后就无事可做,也没有什么大的项目可以接触,这个是我没法忍受的,现在是我的黄金年龄,过了这段时间,我想要去努力学习,估计也没有太多的精力,为什么会有这个想法,源于本次我妈住院时我在医院陪护碰到的一些人,其实呢,这个想法也不是现在才产生的,之前就有过这样的想法,我知道像什么腾讯公司,他
矛盾的选择
研发工作看不到前途和方向,同组的研发者大多是年轻人没多少经验,管理起来会很累。而当我将来更老了是否价值被榨干了? 而做买卖又将是没有周末的日子,感觉也不是我想要的生活。很难抉择...
矛盾人生
大四了,奋发过,放纵过。现在依然迷茫啊!好吧,坚持吧,笑看十年后的我!谨以此帖纪念我死去的大学!
sendto()的矛盾
100kbps的带宽,如何实现只用其中10kbps的带宽?谢谢!
CPU的矛盾
[b]1>我的电脑会断电,突然就断了,初步猜想是<em>C</em>PU的原因。一玩大的游戏<em>C</em>PU温度就飚到65度左右,算是不正常的吧?rn2>我的<em>C</em>UP是:处理器名称Dual<em>C</em>ore AMD Athlon 64 X2 4800+原始频率是2.5GHz,但是实际是2.5114GHz,请问正常吗?rn[/b]rn附:主频:2511.4MHz(原始频率:2500MHz) 倍频:12.5x 处理器外部总线频率:200.9MHz(原始频率200MHz)rn Hyper Transport(超传输时钟频率:1004.6MHz 内存总线频率:358.8MHz DRAM:FSB比值:<em>C</em>PU/7rn[b]正常吗?[/b][color=#FF00FF][/color]
心中的矛盾
我想开发一个非可视的组件。于是想从T<em>C</em>omponent继承。rn但是,我的组件中又不得不用Handle属性,而T<em>C</em>omponent没有这个属性。rn所以我又不得已从TWin<em>C</em>ontrol继承。rn但这样一来,组件就变成可视的了,会在窗体上出现了。rn我现在想它不可视,就像非可视控件一样显示一个小图标。rn请大家给我一个解决方案。
C语言中return疑问
在c语言开发中,常常遇到函数返回值问题,我在不少的地方看人用过如下的编程方式rnint Function()rnrn int n = 10;rn <em>return</em> n;rnrnrn<em>void</em> main()rnrn int i = Function();rnrn这种编程方式,我认为有点问题,当Function函数结束后,其占用的栈空间已被销毁,但是我调试时发现还能返回正确的值,这种写法到底有没有问题,是不是存在隐患。
exit相当于C中的return?
还是break;rn
C语言之return用法
<em>return</em> 0  代表程序正常退出,<em>return</em> 1代表程序异常退出! 使用<em>return</em> 语句可以返回一个变量内的值或一个指针,也可用<em>return</em>0,表示返回为空。 <em>return</em>   代表调到函数外, <em>return</em> 0代表函数正常终止 <em>return</em> 1代表函数非正常终止 <em>return</em> 关键字的作用是返回程序流程的控制权! 其副作用是返回一个值。 例如int main(){}则必须返回...
深入理解c语言的return
例(1)#include #include int fun() { int temp = 3; <em>return</em> temp; } int main() { printf("%d\n",fun()); <em>return</em> 0; } 运行结果如下: [root@localhost ~]# ./a.out 3 反汇编结果如下: (gdb)
c return 出错。求解答
感觉是不是我眼龊了哪里没看清楚,mid最后一次的值时2,然后<em>return</em> mid,result得到的却是1,为什么?rn```rn#includernrnint binary_Search(int a[],int low,int high,int key)rn if(low>high) <em>return</em> -1;rn elsern int mid=low+(high-low)/2;rn printf("low=%d,mid=%d,high=%d\n",low,mid,high);rn if(a[mid]==key) rn printf("a[mid]=%d,mid=%d\n",a[mid],mid);rn <em>return</em> mid;rn rn if(a[mid]key)rn binary_Search(a,low,mid-1,key);rn rnrnrnrnint main()rn int a[]=0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,16;rn int result;rn result=binary_Search(a,0,16,2);rn printf("result=%d\n",result);rn <em>return</em> 0;rnrn```rnrnrn![图片说明](https://img-ask.csdn.net/upload/201602/23/1456217607_395491.png)
C语言中的return和exit()
对于<em>C</em>语言初学者来说,想必很多人都会问,程序结尾的<em>return</em> 0;到底是什么意思? #include &amp;lt;stdio.h&amp;gt; int main() { printf(&quot;Hello World!&quot;); <em>return</em> 0; } <em>return</em> 的意思是 返回 。 <em>return</em>的作用,就像你做一个任务之后,需要向上级报告你的情况,给上级一个回复。 可能有人会问,那为什...
C语言return陷阱小结
1 #include "stdio.h"   2    3 int num = 0;   4 int value = 7;   5    6 int TestFunc(<em>void</em>)   7 {   8     if(num == 0)   9     <em>return</em>  10     value += 1;  11     <em>return</em> 5;  12 }  13 
delphi exit类似C return
delphi中exit方法类似<em>C</em>++中的<em>return</em>方法。
C语言随笔_return答疑
1. 例子,看实例2-2. 这道题有同学会问,那个<em>return</em>有什么用? 这么讲吧,<em>return</em>是个英文单词,中文意思是“返回”,用在程序里也是返回的意思,返回啥呢?返回一个值。在func函数中,<em>return</em>将a+b+1这个表达式计算的值拿到,并且返回给main函数中的p,就是这样。 所以啊,<em>return</em>这个东东一般都是放在函数的末尾,用来将函数中的某一个值拿到,再给其他变量。
C 语言 中 return 的问题 !
我是新手!!!rn有些函数(程序) 再最后 都有这样的 标示 : <em>return</em> 0; 或者 <em>return</em> 1;rn这些表示什么意思??我感觉有些多余呀!! 比如说这个 :rnrn //关闭套节字rn closesocket(conn_socket);rn WSA<em>C</em>leanup();rn <em>return</em> 0; // 需要 么 ??rn
怎么voidreturn可以同时用!不理解呀!
怎么<em>void</em>和<em>return</em>可以同时用!不理解呀!rn<em>void</em>不是不带回值吗?而<em>return</em>是返回啊!rn比如:rn<em>void</em> inv(int x[],int n)rnint t,i,j;rn for(i=0,j=n-1;i!=j;i++,j--)rn t=x[i];x[i]=x[j];x[j]=t;rn<em>return</em>;rnrnrnmain()rnrn int a[9]=1,2,3,4,5,6,7,8,9,i;rn inv(a,9);rn for(i=0;i);rn rnrn谢谢老师解答!
没有返回值的函数(void),是否一定要加return ??
如题
关于c语言和C++中voidvoid*指针解析
前段时间看了篇文章讲到了<em>C</em>语言中<em>void</em>的用法细节,但是只是进行了说明并未进行实例分析也没有说明<em>C</em>++中<em>void</em>是否有区别,因此今天我在这里详细说明一下<em>void</em>的一些细节。分析结果皆来自代码分析,并未查阅相关技术文档,如有错误请指正。 <em>void</em>的定义:<em>void</em>在<em>C</em>和<em>C</em>++是一种数据类型,意为“空指针”。 <em>void</em>类型长度在<em>C</em>语言中: 无法定义<em>void</em>类型变量,无论是cl还是gcc编译器都会对
使用Void类型方法有Return返回值的问题
下面的一种用法,Void方法,可以有Rerun返回值,而且编译时也是可以通过。rn看别人的代码时发现的,自己没有用过。rn查了MSDN上的说明,也没有提到这种用法,MSDN原话:“[color=#FF6600]如果返回类型为 <em>void</em>,则可使用没有值的 <em>return</em> 语句来停止方法的执行。如果没有 <em>return</em> 关键字,方法执行到代码块末尾时即会停止。具有非 <em>void</em> 返回类型的方法才能使用 <em>return</em> 关键字返回值。[/color]”rn[code=<em>C</em>#] private <em>void</em> init<em>C</em>ontrols()rn rn if (RightsManagement.isUserAllowed("mkt_team") == false)rn rn LabelMsg.<em>C</em>ss<em>C</em>lass = "ErrorMessageStyle";rn LabelMsg.Text = Resources.<em>C</em>R.AccessNotAllowed;rn LabelMsg.Visible = true;rn UpdatePanelMsg.Update();rn PanelPage.Visible = false;rn rn elsern rn /*** Sets the VarSession ***/rn DataTable tableSite = new DataTable();rn tableSite = manageSessionVarTableSite(); rn rn rnrn private <em>void</em> manageSessionVarTableSite()rn rn if (SessionManagement.GetVarSession(Web<em>C</em>trlUtil.GetHiddenFieldWinIndex(this), "TableSite") == null)rn rn DataTable tableSite = new DataTable();rn Site<em>C</em>trl.getSiteList(tableSite);rn tableSite.PrimaryKey = new Data<em>C</em>olumn[] tableSite.<em>C</em>olumns["id_site"] ;rn SessionManagement.SetVarSession(Web<em>C</em>trlUtil.GetHiddenFieldWinIndex(this), "TableSite", tableSite);rnrn <em>return</em> tableSite;rn rn elsern rn <em>return</em> (DataTable)SessionManagement.GetVarSession(Web<em>C</em>trlUtil.GetHiddenFieldWinIndex(this), "TableSite");rn rn [/code]
C#方法的返回类型实例解析(return类型和void类型)
 * 静态类是程序在一开始运行的时候就为其分配了内存空间,而非静态类(引用类型)是在实例化之后才为其分配内存空间。     * 静态类方法不“属于”实例(对象),属于类。不能通过实例(对象)引用静态成员。静态类方法 请用 :类名.方法()         调用,例如:   Program .  doAgain(c);            Program.doAgain(122222);引用类方法...
C++函数返回类型错误 void return type assumed
![图片说明](https://img-ask.csdn.net/upload/201604/13/1460552880_533211.png)rn函数<em>void</em>和int 都提示这两句错误rnmain前面没 主函数只是main()rn<em>void</em>换int 加<em>return</em>0 都试过了rn函数下面加了下面这两句才出错的rns=sqrt(p(p-l1)(p-l2)(p-l3));rncout<<
关于return语句用于void函数中的问题
<em>return</em>语句既可用于非<em>void</em>函数中,也可用于<em>void</em>函数中,我想请教一个问题,在<em>return</em>语句用于<em>void</em>函数中(除主函数)时,程序返回后是回到主函数重新执行程序还是回到其它地方啊?求解答?
请问 returnvoid *)8 这条语句是什么意思?
请问 <em>return</em> (<em>void</em> *)8 这条语句是什么意思?
想请问个C语言语法 (*((void(*)(void))0x1900))()
RT,请问高手帮忙具体分析下这句话,不胜感激。
java连连看课程设计说明书(含源码)下载
java连连看课程设计说明书(含源码) java连连看课程设计说明书(含源码) 相关下载链接:[url=//download.csdn.net/download/swqqcs/3094788?utm_source=bbsseo]//download.csdn.net/download/swqqcs/3094788?utm_source=bbsseo[/url]
android手势移动代码(动态图片跟随手势移动)下载
非常详细的注释,开发雷电游戏前期测试手势移动的代码,非常简洁,适合初学者 相关下载链接:[url=//download.csdn.net/download/makeafish/4391869?utm_source=bbsseo]//download.csdn.net/download/makeafish/4391869?utm_source=bbsseo[/url]
solar system 3d下载
计算机图形学基础这门课的project 仅供参考 相关下载链接:[url=//download.csdn.net/download/qinqing_/4768133?utm_source=bbsseo]//download.csdn.net/download/qinqing_/4768133?utm_source=bbsseo[/url]
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件
我们是很有底线的