C
我逍遥
好好学习,天天向上
展开
-
C语言中const char* 和char* const等常量的正确理解
不经常使用const的话,看过多少次都会忘记。让人很是郁闷!今天总结一下,找出规律便于以后记忆。const char *p; //*p是const,p可变:const 后面紧跟的是char,所以*p是一个char字符,不可变const (char *) p;//p是const,*p可变:const 后面紧跟的是(char *)这个整体,所以p是char*类型,不可变。char* con原创 2017-07-13 15:52:42 · 16521 阅读 · 5 评论 -
Linux下C语言TCP编程02
TCP02简单的TCP编程 1、使用了fork(),创建子进程,实现多用户同时在线; 2、服务端只支持接收和回复,不能输入后进行发送; 3、客户端能输入发送并接收服务器的回复。原创 2017-07-10 09:17:53 · 370 阅读 · 0 评论 -
关于short i = 65535和short i = 65536输出问题
#include int main(){ short i = 65535; printf("i=%d\n", i); return 0;}结果:-1分析:因为内存中65535存储内容的16进制表示为:0x0FFFF,将此值传递给16位的变量i时,i只能接受到0xFFFF;看见首位为1,编译器会认为i是个负值,至于负值的绝对值=源码取反(0x0000)+1原创 2017-07-21 15:47:58 · 19039 阅读 · 8 评论 -
Linux下C语言TCP编程01
TCP01简单的TCP编程 1、在线客户端数量为1; 2、服务端只支持接收和回复,不能输入后进行发送; 3、客户端能输入发送并接收服务器的回复。原创 2017-07-10 10:39:21 · 392 阅读 · 0 评论 -
不同编译器对于(a++)*(a++)和(a++)*(++a)和(++a)*(a++)和(++a)*(++a)的运算结果
一个表达式对同一个变量进行两个及两个以上++的运算取决于编译器的方式,编译器不同结果也可能不同,因此建议不要在同一个表达式中对同一变量施行多次自增运算。原创 2017-07-18 10:09:57 · 3003 阅读 · 0 评论 -
数组a[]中&a和a的区别
前提:a和&a的值是一样的,但是意义有所区别,a指的是a[0]的地址,&a指的是数组a的地址(“数组名”代表数组第一个元素的地址,“&数组名”代表的是整个数组的地址)。从而导致a+1和&a+1有了本质的差异。a+1 = a[0]的地址+sizeof(int);(在第一个元素的地址上便宜一个数组元素的大小,即下一个元素,a[1]的地址。)&a+1 = 数组a的地址+sizeof(a);(在数组的地址上偏移一个数组的大小,此时sizeof(a)中的a是一个数组,不是一个指针,计算出来是一个数组的大小,不是指原创 2017-07-18 18:16:54 · 4536 阅读 · 0 评论 -
scanf(“%c”)等问题,清空输入输出缓存
C语言学习者经常会遇到printf()和scanf()的一些问题,没有正确输出或者输入。例如scanf(“%c”,&ch)没有接收到输入字符。或者输出printf(“\n”)不会换行的问题。举个例子: #include int main() { char person[5]; int i; printf("输入编号:"); scanf("%d",&i); prin原创 2017-08-24 17:37:48 · 2038 阅读 · 0 评论