c语言

C语言字符串函数大全

时间秒杀一切 提交于 2020-03-31 18:55:35
C语言字符串函数大全 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法 : char *stpcpy(char *destin, char *source); 程序例 : #include <stdio.h> #include <string.h> int main(void) { char string[10]; char *str1 = "abcdefghi"; stpcpy(string, str1); printf("%s\n", string); return 0; } 函数名 : strcat 功 能 : 字符串拼接函数 用 法 : char *strcat(char *destin, char *source); 程序例 : #include <string.h> #include <stdio.h> int main(void) { char destination[25]; char *blank = " ", *c = "C++", *Borland = "Borland"; strcpy(destination, Borland); strcat(destination, blank); strcat(destination, c); printf("%s\n", destination); return 0; } 函数名 : strchr 功

嵌入式C语言4.2 C语言内存空间的使用-指针与修饰符:const,volatile,typedef

女生的网名这么多〃 提交于 2020-03-31 13:16:08
const:变量,只读【不能变】 内存属性: 1. 内存操作的大小 2.内存的变化性,可写可读 char *p; const char *p; 描述字符串,p指向的内容是只读的,不可再次修改 char const *p; char * const p; 硬件资源的定义 char *p const; const char *const p; 举个例子: 虽然在定义指针p的过程中,前面没有写const,但是默认了他是只读属性,不能对访问内容修改 这个segmentation fault就是非法访问报错的! 正确写法: 2. volatile 主要应用于硬件中 防止优化指向内存地址 char *p; volatile char *p; 3. typedef 别名 什么类型 变量名称; xxx a; char *name_t; // name_t 是一个指针,指向了一个char类型的内存 typedef char * name_t; //name_t是一个指针类型的名称,指向了一个char类型的内存 来源: https://www.cnblogs.com/ivyharding/p/11146915.html

C语言|博客作业02

别来无恙 提交于 2020-03-31 08:53:49
| 这个作业属于哪个课程 | C语言程序设计| | | ------ | ------: |这个作业要求在哪里 |https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/8687| |我在这个课程的目标是 |学会编译更多的程序,打好基础| |这个作业在哪个具体方面帮助我实现目标 |增强了我的逻辑能力和观察力| |参考文献 |《 提问智慧 》《 PTA系统常见问题解答 》| 2.1阅读作业 1.请仔细阅读《 提问的智慧 》,用自己的话描述你的收获,并举例子说明应该如何提问。文章链接: https://github.com/ruby-china/How-To-Ask-Questions- The-Smart- Way/blob/master/README-zh_CN.md/xinz 。 我所学到的东西 : 在提问前, 1.我们首先是自己冷静下来不要能一见到问题就浮躁,我们要学会先独立思考,先想想自己能不能解决 2.认真思考自己问题,准备好你该如何提问,我们要记住轻率的问题只会得到轻率的回答。 3.要明确问题的主题,一些没必要的简单东西不要混杂在其中,明确的问题才有明确的回答。 在提问时, 1.我们首先要注意礼貌礼节,向别人请问我们应当温,并耐心的等待对方的回复。 2.我们要使用一些清晰、明了的语言来提问

C语言结构体

Deadly 提交于 2020-03-31 08:06:43
1. 引入 问题域:跟问题本身相关的一些因素,元素,条件等这些 分析问题,需求,目标 算法思路 解决方案域: 与具体的解决问题的方式,方法相关的一些因素,条件 数学 = 》数学方法(公式,方程) C 语言 = 》算法模型、存储类型、语法 ... 问题域 = 》解决方案域 要把问题域里面的因素 = 》解决方案域的因素 “人” 在解决方案域用什么描述 建模 :来描述问题 现实世界物体需要抽象成计算机语言中数据类型 学生: 学号 =>int 姓名 =>char[] 性别 =>char/int 年龄 =>int 地址 =>char[] ... => 这些物体的属性组合到一个数据类型中 C 语言中允许程序员定义自己的组合类型 结构体 联合体 / 共用体 枚举 2. 结构体 : 自定义的一种组合数据类型 2.1 定义 struct 结构体名 { 成员类型 1 成员名 1; 成员类型 2 成员名 2; 成员类型 3 成员名 3; .... }; 结构体名 :符合 C 语言中标识符的规定 struct 结构体名 =>( 你定义的 ) 新类型的名字 成员类型 :C 语言任意合法的数据类型都可以 成员名 : 符合 C 语言中标识符的规定 eg: struct student { int num; char name[32]; char sex; int age; char addr[32]; }; =

C语言数据类型

落爺英雄遲暮 提交于 2020-03-30 21:31:00
1.无符号类型不能表示负值。 2.2.1整型   整形包括短整型、整形和长整形。 2.1.1短整形   short a=1; 2.1.2整形   一般占4个字节(32位),最高位代表符号,0表示正数,1表示负数,取值范围是-2147483648~2147483647, 在内存中的存储顺序是地位在前、高位在后,例如0x12345678在内存中的存储如下:   地址:0x0012ff78  0x0012ff79  0x0012ff7a  0x0012ff7b   数据:  78      56        34      12   定义:用int关键字,举例如下:   int a=6; 2.1.3长整形   long a=10; 2.2浮点型   浮点型包括单精度型和双精度型。 2.2.1单精度型   浮点型,又称实型,也称单精度。一般占4个字节(32位),   float a=4.5;   地址:0x0012ff78  0x0012ff79  0x0012ff7a  0x0012ff7b   数据:  00      00        90      40 2.2.2双精度型   一般占8个字节(64位)   double a=4.5;   地址:0x0012ff78  0x0012ff79  0x0012ff7a  0x0012ff7b  0x0012ff7c 

C语言数据类型

亡梦爱人 提交于 2020-03-30 21:24:26
参考链接: http://www.cnblogs.com/onedime/archive/2012/11/21/2780149.html      http://www.cnblogs.com/cyzsoho/p/4802799.html 1.概述   C 语言包含的数据类型如下图所示: 2.各种数据类型介绍 2.1整型   整形包括: short 短整型、int 整形、long 长整形。 2.1.1 短整形 short ,大小2个字节(32位系统)   short a=1; 2.1.2 整形 int   一般占4个字节(32位),最高位代表符号,0表示正数,1表示负数,取值范围是-2147483648~2147483647,在内存中的存储顺序是低位在前、高位在后,例如0x12345678在内存中的存储如下:   地址:0x0012ff78  0x0012ff79  0x0012ff7a  0x0012ff7b   数据:  78      56        34      12   定义:用int关键字,举例如下:   int a=6; 2.1.3长整形 long   long a=10; 2.2浮点型   浮点型包括:float 单精度型、double 双精度型。 2.2.1单精度型 float   浮点型,又称实型,也称单精度。一般占4个字节(32位系统),   float

1.1 C语言概念

会有一股神秘感。 提交于 2020-03-30 20:46:40
1.1 基本概念 源文件: 源文件即是源代码文件,C语言源文件后缀名是.c。 头文件: 头文件后缀名为. h(head,头),c语言代码由头文件和源文件组成。 关键字: 关键字是c语言征用的一些英文字母或者单词,这些字在c语言中代表着特殊含义,已经被c语言定义好了,轮不到我们再次随意定义使用了。 注释: c语言中注释以 // 开头,或者 / / ,注释是给程序员看的,不是给机器看的。也就是说,程序员写注释给其他人看,让人明白自己为什么要这么写。但是编译器编译程序的时候是忽略注释内容的。(一个代码品格良好的程序员,注释是写的明明白白的) 变量:会变化的量,c语言中程序是用变量来进行计算的。 函数:函数是c语言的一个基本组成单位,一个c语言程序其实是由很多个函数组成的。函数可以调用其他函数来完成运算。 1.2 C语言开发的一般步骤 第一步 编辑源代码(使用vi或者其他编辑器) 第二步 编译。编译就是编译器把源程序转化成可执行的过程,编译要用到编译器。我们在linux中使用编译器一般是gcc。 譬如:gcc hello.c 把当前目录下hello.c文件编译,得到的可执行文件名字a.out,也可以自己指定编译后生成的可执行程序的名字,使用gcc hello.c -o hello 第三步 执行编译。执行编译生成的可执行程序,执行方式是 ./hello 第四部 调试

C语言讲义——变量(variable)

让人想犯罪 __ 提交于 2020-03-30 17:20:27
变量(variable) 变量用于存放数据 变量是供程序操作的存储区的名字 变量有类型,该类型决定了变量占用内存的大小 字节→ C语言有以下6种简单变量类型: 类型细分: 变量在内存中需要占据空间,内存占用情况如下图所示:一个int变量占4字节空间(有的电脑上可能占2字节),一个double变量占8字节空间。 说明: char = 1Byte short ≥ 2Byte long ≥ 4Byte long ≥ int ≥ short 此外还有一些复合类型,比如enum(枚举)、struct(结构体)、union(联合)。这些类型都是值类型(传参数时默认都是值传递) 求变量的size: printf("short :%d\n",sizeof(short)); printf("unsigned short:%d\n",sizeof(unsigned short)); printf("整形:%d\n", sizeof(int)); printf("长整形:%d\n", sizeof(long)); printf("浮点:%d\n", sizeof(float)); printf("double :%d\n", sizeof(double)); printf("long double :%d\n", sizeof(long double)); 结果: short :2 unsigned

wc.exe(c语言开发)

耗尽温柔 提交于 2020-03-30 14:00:36
github地址:https://github.com/vicky-3653/WC.git 一、工程介绍 wc.exe 是一个常见的工具,它能统计文本文件的字符数、单词数和行数。这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数、单词数和行数。 实现一个统计程序,它能正确统计程序文件中的字符数、单词数、行数,以及还具备其他扩展功能,并能够快速地处理多个文件。 具体功能要求: 程序处理用户需求的模式为: wc.exe [parameter] [file_name] 基本功能列表: wc.exe -c file.c //返回文件 file.c 的字符数 wc.exe -w file.c //返回文件 file.c 的词的数目 wc.exe -l file.c //返回文件 file.c 的行数 扩展功能: -s 递归处理目录下符合条件的文件。(实现) -a 返回更复杂的数据(代码行 / 空行 / 注释行)。(实现) 空行: 本行全部是空格或格式控制字符,如果包括代码,则只有不超过一个可显示的字符,例如“{”。 代码行: 本行包括多于一个字符的代码。 注释行: 本行不是代码行,并且本行包括注释。一个有趣的例子是有些程序员会在单字符后面加注释: } //注释 在这种情况下,这一行属于注释行。 二、psp表格 PSP2.1

c语言const、volatile问题小结

≡放荡痞女 提交于 2020-03-30 11:45:57
之前百度面试的时候被volatile虐了,内核中很多地方也会用到,这个面试的时候出现概率太大了,所以搜集了一些结果供大家参考,大部分是百度到的,说得挺明确的,以后读代码的时候遇到了再更新。 百度知道有人提如下问题: #include "stdio.h" int main(void){ const char i = 1; char * j = (char *)&i; printf("%d,%d,%p,%p\n",i,*j,&i,j);//1,1 *j = 2; printf("%d,%d,%p,%p\n",i,*j,&i,j);//1,2 *j = 3; printf("%d,%d,%p,%p\n",i,*j,&i,j);//1,3 } 为什么i没有改变呢,各位运行也会发现,他们的地址都是一样的。 醉了,我debug的时候,i也是随着j改变的,但是输出时,i就变成1了。希望各位能够从编译的角度上说一下这个问题。 我对答案有稍微修改,对比vc编译结果差不多所以就引用别人的图了 1.这是有const修饰与无const修饰的汇编代码 变量i存储在eax寄存器中,有const修改表达寄存器的值不允许被修改 第22行的时候,对*j=2;赋值时,有const修饰的会对edx进行操作 而没有const进行修饰的就是直接对eax进行操作. 至于编译器调试模式下 , 看见的 i 的值变成 2,