int gcb(int a,int b) { if(b==0) return a; else return gcb(b,a%b); }
int main() { float x=12,25; x++; printf("%d",x);x=13.25 }
取模运算只能对整型进行取模(char, short, int ,long int, long long
)
int a; printf("%d",sizeof(&a)); x86 4个字节 32bit 64 8个字节 64bit
指针变量存放的是变量的首地址
指针访问结构体成员
(*sp).s_id;带括号是因为.的优先级高,*sp就是所指变量本身 sp->s_id
显示器是标准输出文件stdout,向屏幕输出printf putchar
键盘为标准输入文件stdin 从键盘获取函数scanf getchar
下面这个代码,从键盘输入的数据先存在缓冲区中且代码停在第一个ch=getchar,当输入\n时,缓冲区才会将数据一个一个的给ch然后进入while循环,putchar也一样,先存入缓冲区,后读到屏幕
缓冲区在内存
int main() { int sun=0; char ch='\0'; ch=getchar(); while(ch!='\n') { sum+=1; ch=getchar(); } printf("sun: %d\n",sum); return 0; }
缓冲区造成的问题
当从键盘中输入数字后按下enter 键后,就会将\n给ch就直接退出了,有一个方法是加上一行ch=getchar()将\n给ch
int main() { int sum=0; int val=0; char ch='0'; do { printf("input a number:"); scanf("%d",&val); sum+=val; printf("是否继续(Y/N)\n"); // ch=getchar();加这一行可以解决但是按多次空格也不行 ch=getchar(); }while(ch=='y'||ch=='Y'); printf("sum : %d\n",sum); return 0; }
sizeof既不是宏也不是函数,只是是一个运算符
typedef int arry[10]; arry ar={1,2,3}; ar就是整型数组并且为10个空间