随笔分类 -  C Primer Plus

C Primer Plus
摘要://定时器 #include #include #include int main(int num, char* arg[]){ //arg数组存放指针 //printf("个数:%d 参数值1:%s 参数值2:%s 参数值:%s\n",num,arg[0],arg[1],arg[2]); if(num!=2){ printf("必须输入一个数字:%s\n",arg[0]); ... 阅读全文
posted @ 2018-03-13 12:44 王默默 阅读(8860) 评论(0) 推荐(0)
摘要:1:指针数组:就是这个数组里面的元素全部是指针;即地址 如: int a[] = {1,2,3,4,5}; int *p[] = {&a[0],&a[1],&a[2],&a[3],&a[4]};//全部元素都是地址 2:数组指针: 指向数组的指针叫数组指针 int (*p)[4]; //数组指针也就 阅读全文
posted @ 2018-03-10 20:26 王默默 阅读(530) 评论(0) 推荐(0)
摘要:1.使用函数指针数组来实现计算器 2.通过函数指针变量来调用对应的函数 阅读全文
posted @ 2018-03-10 19:19 王默默 阅读(10959) 评论(0) 推荐(0)
摘要:从上面来看;add函数参数入栈顺序 从左到右LInux 和Windows不一样 进一步发现,Pascal语言不支持可变长参数,而C语言支持这种特色,正是这个原因使得C语言函数参数入栈顺序为从右至左。 具体原因为:C方式参数入栈顺序(从右至左)的好处就是可以动态变化参数个数。 通过栈堆分析可知,自左向 阅读全文
posted @ 2018-03-10 16:51 王默默 阅读(659) 评论(0) 推荐(0)
摘要:函数名和数组名不允许修改其地址;因为是常量; 函数指针:返回的是函数的类型数据 指针函数:返回的是一个指针地址 函数名和数组名一样都是一个指针;即是地址 阅读全文
posted @ 2018-03-10 14:26 王默默 阅读(13627) 评论(0) 推荐(0)
摘要:在C语言中,对变量的存储类型说明有以下四种: auto 自动变量 (动态存储) register 寄存器变量(动态存储) extern 外部变量(静态存储) static 静态变量(静态存储) 所谓存储类型是指变量占用内存空间的方式,也称为存储方式。 这4种类型 不允许重复定义 如: extern 阅读全文
posted @ 2018-03-09 10:58 王默默 阅读(4950) 评论(0) 推荐(0)
摘要:变量从高到低的优先级以下面展示: 1.文件作用域;变量在全局从文件开头到结尾一直有效即全局变量 2.函数作用域也称局部变量 3.代码块作用域;用{}花括号内的定义的变量;都是在代码块{}中有效 如:if while dowhite for 循环的代码块 4.函数原型也就是函数的声明作用域;那变量只在 阅读全文
posted @ 2018-03-09 09:38 王默默 阅读(605) 评论(0) 推荐(0)
摘要:总结: 常量指针:常量的值即存储单元的值不可以修改;地址可以修改。 指针常量:指针地址不可以修改; 指针指向的存储单元可以被修改。 指向常量的指针常量:地址和存储单元的值都不可以被修改。 阅读全文
posted @ 2018-03-08 14:16 王默默 阅读(261) 评论(0) 推荐(0)
摘要://数组变量名;就是一个地址;就是数组首元素的地址#include int main(void) { int age[5] = {10,50,100,22,44}; //正确 //int * p = &age[0];//不能赋值age数组名是常量不允许赋值 //正确 int * p = age;//数组名就是一个地址;就是数组a[0] 的地址;即是数组的首地址 printf... 阅读全文
posted @ 2018-03-04 22:23 王默默 阅读(2128) 评论(0) 推荐(0)
摘要:#include int main(void) { int a=10; int *p = &a; *p = 89; printf("变量值a=%d a=%d\n", a,*p);//0x7fff8af18554 printf("指针地址p=%p p=%p\n",p,&a);//0x7fff8af18554 printf("指针地址p=%#lx p=%#lx\n"... 阅读全文
posted @ 2018-03-03 21:39 王默默 阅读(6184) 评论(0) 推荐(0)
摘要:#include int main(void){ int age[5] = {5,6,7,20,99}; return 0; } //转换后 /*(gdb) p &age[0] $20 = (int *) 0x7fffffffe330 对应a[0]的地址 (gdb) p &age[1] $21 = (int *) 0x7fffffffe334 (gdb) p &age[2] $... 阅读全文
posted @ 2018-03-02 14:21 王默默 阅读(1626) 评论(0) 推荐(0)
摘要:ASCII值控制字符ASCII值控制字符ASCII值控制字符ASCII值控制字符 0 NUT 32 (space) 64 @ 96 、 1 SOH 33 ! 65 A 97 a 2 STX 34 " 66 B 98 b 3 ETX 35 # 67 C 99 c 4 EOT 36 $ 68 D 100 阅读全文
posted @ 2018-03-02 14:01 王默默 阅读(1084) 评论(0) 推荐(0)
摘要:本文写给主要工作在Windows操作系统下而又需要开发一些跨平台软件的程序员朋友,以及程序爱好者。 GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。 GDB中的命令固然很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调 阅读全文
posted @ 2018-03-02 13:57 王默默 阅读(373) 评论(0) 推荐(0)
摘要:输出结果 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 阅读全文
posted @ 2018-03-01 21:41 王默默 阅读(704) 评论(0) 推荐(0)
摘要:#include int main(void) { /* 选择排序算法 原理:从数组中 找出最小的元素然后交换位置; */ int a[10] = {9,5,10,7,2,3,1,6,8,4}; int i=0,j=0; int n = sizeof(a)/4; //外循环n-1轮 for(i=0;i<n-1;i++){ int pos = i;//始终指向最小的位... 阅读全文
posted @ 2018-02-28 22:51 王默默 阅读(1090) 评论(0) 推荐(0)
摘要:#include /* 十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方; 在16进制中:a(A)=10 b(B)=11 c(C)=12 d(D)=13 e(E)=14 f(F)=15 例如:CE=12*16^1+14*16^0=192+14=206 */ //右旋转把第一位 放到最后 0x2345 => 0x3452 num左移1位0x3450;即1个16进制位等于4个... 阅读全文
posted @ 2018-02-26 23:22 王默默 阅读(2995) 评论(0) 推荐(0)
摘要:一:无参函数 类型说明符 get(){ //函数体 } 二:无参函数 类型说明符 getname(int a,int b){ //函数体 } 三:类型说明符包括: int ,char,float,double, void, static 四、函数的调用 直接使用函数名调用;实参(常量,变量,表达式, 阅读全文
posted @ 2018-02-26 16:05 王默默 阅读(300) 评论(0) 推荐(0)
摘要:一、函数的特点: 全部都是全部函数构成 面向过程的;是函数式语言 函数的调用 是按需调用 封装包含 二、程序中函数的作用: 可以使用函数使程序变的简短 和 清晰 提高代码重用性 提高开发效率 有利于程序维护 三、函数的划分: 库函数:系统提供 用户定义的函数:由用户声明和定义的函数 四、函数的返回类 阅读全文
posted @ 2018-02-26 15:52 王默默 阅读(259) 评论(0) 推荐(0)
摘要:#include int main(void){ //利用移位运算符 把十进制转换成二进制 int c; printf("输入数字:");//8 scanf("%d",&c); //最高位和次高位都要移动到最低位 //补码:00 0000 1000 //逻辑右移>>:00 0000 1000 //printf("%d",8=0;i--){ int bit = (c>>... 阅读全文
posted @ 2018-02-26 15:23 王默默 阅读(2173) 评论(0) 推荐(1)
摘要:#include int main(void){ int a,n; printf("pls input number:\n"); scanf("%d",&a); n = sizeof(a); int i,c=0; char j[8]; i = a/2; while(i!=0){ j[c]= a%2; a = a/2; c = c+1; } while(c>0... 阅读全文
posted @ 2018-02-26 14:25 王默默 阅读(1378) 评论(0) 推荐(0)