- 博客(67)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 2019,扬帆起航
一健康1吃(每餐八分饱,晚上八点后不吃东西;每天12种不重样,一周25种不重样)(1)水(1500ml-1700ml)(2)运动(6000步以上)(3)谷类(大米,小麦,大麦,玉米,黑米,小米,红米,薏米,大黄米,高粱,燕麦,糙米等杂粮)200g + 薯类(红薯,紫薯,芋头,山药,土豆)100g + 杂豆(红豆,黑豆,绿豆,芸豆)50g(早吃谷薯豆粥,午吃谷。每天至少三种类型,每周...
2019-01-02 21:17:58
864
1
原创 2018,从心出发
一身心1合理膳食(早中晚,每天12种不重样,一周25种不重样)(1)水(1500ml-1700ml)(2)运动(6000步以上)(3)谷类(大米,小麦,大麦,玉米,黑米,小米,红米,薏米,大黄米,高粱,燕麦,糙米等杂粮)200g + 薯类(红薯,紫薯,芋头,山药,土豆)100g + 杂豆(红豆,黑豆,绿豆,芸豆)50g(早吃谷薯豆粥,午吃谷。每天至少三种类型,每周至少五种类型)...
2019-01-02 20:32:49
347
转载 指针值为空作为函数参数传入
下面以一个例子来引出这种错误:#include <iostream>using namespace std;#include <stdlib.h>#include <string.h>void func(int *p){ p = (int *)malloc(sizeof(int) * 10); memset(p, 0, sizeof(p...
2018-05-19 11:25:48
8621
5
原创 数组求长度,用sizeof(数组名)
int arr[] = {1, 2, 3, 4};sizeof(arr) = 16;char arr[] = "abc";sizeof(arr) = 4;strlen(arr)=3char arr[] = {'1', '2', '3'};sizeof(arr) = 3;strlen(arr)=3注意:当数组作为函数参数传递当时候,表示当是指针,不能用sizeof(名称),求出来当是计算机字长。...
2018-05-19 11:11:08
48402
3
原创 2017个人规划
一身体健康1饮食丰富2积极运动3规律作息二心理健康1管理情绪2人际关系三工作积极1完成工作2专业技能四业余爱好1阅读2语言3时尚4美容5养花6旅行
2016-12-10 15:28:04
643
原创 FILE
1. 向文件写数据FILE *fp;fp = fopen("a.txt", "wb");fwrite(buffer, 1, buffer_len, fp);fflush(fp);fclose(fp);
2016-04-26 17:13:59
288
原创 不使用临时变量交换两个无符号 正数a和b的值
在学习C语言的时候,涉及到两个变量值的交换,其中用到临时变量。类似于:12345temp=a; a=b; b=temp; 这样的语句,如果在没有临时变量的情况下,该如何做呢?网络上的人们给出了两种方法:一、异或法
2016-03-11 23:21:38
424
原创 逆序字符串或以空格为分隔符分别倒序
1.倒叙整个字符串#include #include #include char *Reverse(char *str){assert(str!=NULL);char *start_str = str;char tmp;int len = strlen(str);int i = 0;while (start_str{tmp = *st
2016-03-11 22:50:54
736
原创 #include<>和#include“” 区别
而""首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于include自定义的头文件,让系统优先使用当前目录中定义的。 When writing your C program, you can include files in two ways. The first way is to surround the file you want to include wit
2016-03-10 22:35:18
487
原创 strtok和strtok_r用法
:[cpp] view plain copy #include #include #include int main() { char str[]="ab,cd,ef"; char *ptr; printf("before strtok: str=%s\n",str
2016-03-10 11:30:56
597
原创 while(*ptr++)什么时候可以作为循环体
1. strcat函数实现char *strcat(char *dest, const char*src){assert((dest!=NULL)&&(src!=NULL));char *address = dest;while(*dest)//此处不可以用while(*dest++),由于需要dest指向'\0'位置,如果*dest++作为循环条件,dest执行'\0'后面的
2016-03-09 22:25:41
920
原创 数组名和数组地址
int a[5], a, &a, &a[0]的意义 a, &a, &a[0]的地址一样,表示的意义不一样;1) a 的类型是 int [5];a + 1,移动一个int2) &a的类型是int(*)[5];&a+1,移动一个长度为5的int array3) &a[0]的类型是int *, 与1)类似,移动一个int测试例子:以后的学习中可以深入研
2016-03-09 21:47:35
441
原创 字符数组和字符指针
1. 在函数GetMem栈内定义个数组,将地址return给main函数的指针streg:char p[] = “hello world”;char *GetMemory(void){ char p[] =“hello world”; return p;}void Test(void){ char *str =NU
2016-03-09 21:39:08
261
原创 static作用
一、修饰变量第一个作用:修饰变量。变量又分为局部和全局变量,但它们都存在内存的静态区。静态全局变量,作用域仅限于变量被定义的文件中,其他文件即使用extern 声明也没法使用他。准确地说作用域是从定义之处开始,到文件结尾处结束,在定义之处前面的那些代码行也不能使用它。想要使用就得在前面再加extern ***。恶心吧?要想不恶心,很简单,直接在文件顶端定义不就得了。静态局部变量
2016-03-09 21:37:19
613
原创 #define宏定义
1. 宏定义(这个宏输入两个参数,并输出最小大一个)正确答案:#define MIN(a,b)((a)注:(1)#define MIN(a,b)(a) (2)#defineMIN(a, b) (a (3)#defineMIN(a, b) ((a)另:MIN(*p++,b)会产生副作用,指针p会做三次自加操作。
2016-03-09 18:42:54
485
原创 有符号和无符号数表示
源码:正数的源码为二进制表示形式,负数的源码为最高位为1,后为正数源码反码:正数反码等于源码,负数的反码等于源码符号位不变,其他位取反补码:正数的补码等于源码,负数的补码等于源码的反码+1源码:负数的源码也等于负数,符号位补变,补码取反+1有符号单字节数据:源码表示:01111111~00000000~10000000127~0~-128
2016-03-09 18:40:56
822
原创 #ifdef和#ifndef和#if
一#if的使用说明#if的后面接的是表达式#if (MAX==10)||(MAX==20) code...#endif它的作用是:如果(MAX==10)||(MAX==20)成立,那么编译器就会把其中的#if 与 #endif之间的代码编译进去(注意:是编译进去,不是执行!!)#if defined的使用#if后面接的是一个宏。#if defi
2016-03-09 15:10:09
707
原创 指针数组和数组指针
首先需要明确,*的优先级小于[]的优先级。 指针数组:本质是一个数组,数组中的每个元素都是一个指针,形式:int *p[5]; 数组指针:本质是一个指针,指针指向一个数组,形式:int (*p)[5]; 在C语言中通常使用数组指针作为行指针。如: int a [3][4]; int (*p)[4]; p = a; // 将二维数组的首地
2016-03-09 00:08:24
230
原创 malloc和free
malloc 申请堆中的空间,free释放malloc申请的空间,二者要成对使用,否则会发生内存泄露。 malloc 注意事项:malloc输入是一个long型,即接收字节数;输出是一个void*指针,需要做强制转化给已知类型指针。 malloc定义:void *malloc(long Nu
2016-03-09 00:07:34
483
原创 typedef
typedef 可以为其他变量表明别名,如typedefint myInt, 这样myInt即表示int,可用于myInt a = 10; 其效果与int a = 10一样。 关于结构体的定义,1)struct myStruct { int a; double b; };2) struct myStruct
2016-03-08 23:53:42
276
原创 size_t
目前仅仅知道其实一个数据类型,且已经被定义在C/C++的头文件中,在VS2010, winXP 32 环境下,用sizeof求得的size_t大小与int型一样,都为4 ,但是在linux64bit下sizeof(size_t)的长度和long int一样,为8 参考网站:http://en.cppreference.com/w/cpp/types/size_t
2016-03-08 23:37:13
259
原创 c++模版
C++ 模板一般形式为 : templateT func(T a);调用时式样 func (inputNumber ); func 作为一个整体参考网站:http://c.biancheng.net/cpp/biancheng/view/213.html可以 定义一个模板类: template class UserDefine {
2016-03-01 10:37:27
284
原创 printf打印格式
格式字符串在Turbo C中格式字符串的一般形式为: [标志][输出最小宽度][.精度][长度]类型。其中方括号[]中的项为可选项。各项的意义介绍如下。1) 类型类型字符用以表示输出数据的类型,其格式符和意义如下表所示:格式字符意义d以十进制形式输出带符号整数(正数不输出符号)o以八进制形式输出无符号
2016-02-29 21:27:15
649
原创 字符数组和字符指针
1. 字符数组名为常指针char a[]=“hello world”;将常量字符串赋值给字符数组,有两种方法:(1)初始化时赋值(2)strcpy赋值这个a是char* const a;2. 字符指针可以直接赋值char *p = “hello world”;这个p是const char *p;
2016-02-29 21:25:16
262
原创 存变量和读变量内存相关问题
存储:堆是malloc,relloc和calloc分配的空间,先定义的变量存储在低地址,后定义的变量存储在高地址,这是变量之间的关系。对于单个变量,如果是多字节的变量,按小端存储方法,低字节放低地址,高字节放高地址。按大端存储方法,低字节放高地址,高字节放低地址。栈是函数内变量存储空间,先定义的变量存储在高地址,后定义的变量存储在低地址,这是变量之间的关系。对于单个变量,如果是多字节的变量
2016-02-29 21:00:21
298
原创 不同类型的数据之间的强制转换
(1) int型转成char型取int型的最低地址对应的字节给char(2) int型转成short型取int型的两个最低地址对应的字节给short(3) char型转成int型在该字节前面补充零(4) int型指针转成char型指针int a[2000];char *p = (char*)a;//p[0]=a[0]的最低地址的一个字节,p[1]=a[0]最
2016-02-29 20:59:23
653
1
原创 assert用法
C中的错误信息提示,用法assert(expression),使用时需要include头文件:include“assert.h”,当表达式中的值为真时,程序顺利运行;当表达式的值为假时,抛出错误信息;当多个条件时,最好分开写成两行: assert(expression1); assert(expression2); 以便定位不同的错误信息位置;assert现已停用,原因是频
2016-02-29 20:58:29
551
原创 volatile的用法
volatile是一个关于优化的关键字,目的是告诉编译器每次都要去读变量本身的值,而不是简单的将其优化为一个已知的值。Volatile const int a = 10;表示a是一个整形的常量,代码中不应该去修改它,但是它可以被外部修改,比如中断等
2016-02-29 20:57:55
416
原创 void类型指针
void类型指针在C语言中被称为通用指针或者泛指针,主要目的是针对纯粹的地址操作。Void型指针指向某个对象,但是该对象不属于任何类型。因此在ANSIC中无法对其进行+/-操作,但是在GNU中是可以的,原因是GNU将其与char类型的操作视为相同(linux下将void*看成是char*)。(1) 有类型的指针可以自动转换成无类型的指针(2) 无类型的指针可以自动转换成有类型的指针(c
2016-02-29 20:56:20
467
原创 const int *p,int *const p和int const *p的区别
(1) const int *p与int const *p等同(2) const int *p的含义是p是指向常量整形的指针(3) int *const p的含义是p是指向int的常量指针(4) 常量指针:const在*前面,表示不能通过指针来改变变量的值(5) 常指针:const在*后面,表示指针是一个常量,不能改变指针的指向,但是可以改变指针所指向变量的值(6)
2016-02-29 14:38:40
7568
原创 大端和小端字节区别
大端:高字节存放在低地址,低字节存放在高地址小端:高字节存放在高地址,低字节存在低不过给我启发的是,在裘宗燕翻译的《程序设计实践》里,这对术语并没有翻译为“大端”和小端,而是“高尾端”和“低尾端”,这就好理解了:如果把一个数看成一个字符串,比如11223344看成"11223344",末尾是个'\0','11'到'44'个占用一个存储单元,那么它的尾端很显然是44,前面的高还是低就表示尾端
2016-02-25 22:13:15
473
原创 指针和双指针作为函数参数
1. 每个变量都有一个地址和初值,初值可以被改变,这个值的类型可以是int,char,double,float等。2. 指针是变量,指针变量也有地址和初值,只不过指针变量的值是地址类型。3. 双指针也是变量,也有地址,变量值的类型是地址的地址。1. 变量作为函数参数:void var(int a){a = 3;}int main(void){int b = 2;
2016-02-25 20:25:19
2212
原创 gcc
GCC是GNU C Compiler的简称。1. 基本的用法(一步到位的编译)gcc test.c -o test实际上上述编译过程分为四个阶段进行,即预处理(预编译preprocessing),编译(Compalition),汇编(assembly)和链接(Linking)2. gcc -E test.c 或gcc -E test.c -o test.igcc的-E选项,可以
2016-02-23 22:50:16
287
转载 系统架构,软件架构,解决方案以及企业架构关系
语言就像 原材料 IDE就像 生产工具(锤子 螺丝刀 焊枪 ...) 代码就像 零件 (螺丝螺母 钢板...)框架就像 生产线+生产线上的标准软件就像 生产工具的成品 (挖土机 吊车 重卡 ...)开发就像 1 使用原材料做零件 2 使用零件+生产线做成品 (三流企业做产品 , 二流企业做服务)3 使用原材料+零件做生产线+生产线上的标准 (一流企业做标准)
2016-02-23 16:00:00
1245
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人