摘要:废话先不说,看代码int main(int argc, char* argv[]){int a[8]={0,1,2,3,4,5,6,7};int *(*p);p=(int**)malloc(20);p[0]=&a[1];p[1]=&a[0];printf("%d %d\n",a[0],a[1]);printf("%d %d\n",*(p[0]),*(p[1]));p[0]=&a[3];printf("%d %d\n",*(p[0]),*(p[1]));printf("%d %d\n",a[0
阅读全文
摘要:看例子:{char a[256];int b;char c;scanf("%s",a);scanf("%d%c",&b,&c);}这样写了之后,每次输入一个字符串和一个整数后,就结束了,坑爹,经过多方考证知道了涉及到这个函数的理解问题,,,当你输入到屏幕中的时候,他是一个系统的标准输入文件流,你输入的东西都在这个流文件里面,这个时候,scanf()做的事情就是对应的读取过程了,但是%c很特殊,他总是被忽略,导致很多时候没读入或者是非法操作,提供自己验证的两种方法:1、scanf("%s",a);scanf("
阅读全文
摘要:1、逻辑运算符 潜在的危险void main(){int x=3,y=4;if(++x || ++y) printf("%d",y)}说明,本拟题中“||”判断符,只要前面是1,就不计算后面的,直接返回正确同样可以想象“&&”判断的时候,只要前面是0,就直接返回了2、关于++p和p++在程序中区别的问题大家都知道int p=2; int m; m=p++的结果是m=2,而m=++p的结果是3,这很容易理解,p++是先运算,后赋值的。 那么在遇到问题的时候,就不妨将其用一个变量代替,下面附上例子:(1)int i=3;do{printf("%d&qu
阅读全文