C语言
文章平均质量分 90
智渝
生无路而勤为径
展开
-
OpenHarmony 鸿蒙OS C编程规范
源地址英文版文章目录C语言编程规范目的总体原则约定例外1 命名总体风格规则1.1 标识符命名使用驼峰风格建议1.1 作用域越大,命名应越精确文件命名建议1.2 文件命名统一采用小写字符函数命名建议1.3 函数的命名遵循阅读习惯变量命名规则1.2 全局变量应增加 'g_' 前缀,函数内静态变量命名不需要加特殊前缀建议1.4 局部变量应该简短,且能够表达相关含义类型命名宏、常量、枚举命名建议1.5 避免函数式宏中的临时变量命名污染外部作用域2 排版格式行宽建议2.1 行宽不超过 120 个字符缩进规则2.原创 2021-06-18 12:28:32 · 3925 阅读 · 1 评论 -
<C/C++>指针在什么时候需要申请内存空间?
指针什么时候需要申请内存空间??1、指针所指向的地址需要存放数据的时候需要申请空间。int *q;只有地址,没有内存空间。这个地址是随机地址。(1)没有申请内存空间:int *q;*q = 1;cout错误!指针变量q没有空间,不能直接存放数据。 (2)申请内存空间:int *q = new int原创 2017-09-25 10:42:53 · 6620 阅读 · 4 评论 -
<C语言>结构体里包含共用体实例--输入输出数据
结构体里面包含共用体,能很好的解决输出的时候有两种情况的难题,有详细注释,不过多赘述。题目:打印如图所示的表格:当某人为的职业为学生‘s’时,score/course项要为score;当某人为的职业为教师‘t’时,score/course项要为course。代码://>>>>>>>>//wsg//时间:2017年8月15日//运用联合体中只能有一个成员有效原创 2017-08-15 16:35:44 · 7125 阅读 · 1 评论 -
<C/C++>日期和时间的使用(time相关函数大全)
·与时间相关的变量类型与时间相关的类型有四个,分别是:time_t、clock_t、size_t、tm。tm是一个结构体类型,系统定义如下:/* tm结构体 */struct tm{ int tm_sec; // 秒:0-59(允许至61) int tm_min; // 分:0-59 int tm_hour; // 时:0-23 int tm_mday原创 2017-09-28 16:43:27 · 2745 阅读 · 0 评论 -
<C语言>结构体与联合体(共用体)的地址排布问题(内存字节对齐)
作者:wsg时间:2017年8月15日一、我们先来看看这个结构体的大小:struct test{ short a; double b; char c;}x;在32位系统下,short型占2个字节,double型占8个字节,char型占1个字节,那么该结构体所占空间大小是我们想象中的11个字节吗?结果是16,并不是11,这是来的呢?我们先把这个问题放到一原创 2017-08-15 18:32:34 · 2760 阅读 · 7 评论 -
<C语言>static与extern关键字
转载自:http://blog.csdn.net/mr_raptor/article/details/7211267乱世枭雄:static与extern描述:在C程序世界里,不同代码国度以.c文件为国界分隔开来,在单个国家(C源文件)里有不同的函数占山为王,军阀割据,每个C程序世界里只有一个君主main和其首都(main函数体),main通过下传圣旨(参数),调用各种军转载 2017-10-07 20:27:23 · 333 阅读 · 0 评论 -
<C语言>auto和register关键字
转载自:http://blog.csdn.net/mr_raptor/article/details/7209452++++++++++++++++++++++++++++++++++++++++++《C语言深入理解系列 - 关键字:auto和register》查看其它博文请关注原创作者。本文系本站原创,欢迎转载! 转载请注明出处:htt转载 2017-10-07 20:25:49 · 1457 阅读 · 0 评论 -
<C语言>“获取时间”函数的定义与封装
C语言获取本地时间,有时候需要不同的格式来表示,作者自己编写了一个头文件,封装了日期和时间,便于调用,在这里分享给大家:/* The function for geting date. *//*author:wsgdate:2017/09/08version:1 */#ifndef _GETTM_H_#define _GETTM_H_/* head file */#in原创 2017-09-08 11:18:06 · 882 阅读 · 0 评论 -
C/C++:CV限定的理解
文章来源于:http://jingyan.baidu.com/article/f0062228dcc8a6fbd3f0c88a.htmlC/C++提供多种声明变量和函数存储持续性、作用域和链接性的关键字,有些被称为存储说明符(store class specifier)或 cv 限定符(cv-qualifier),这里就一起学习一下cv限定符。cv限定符就是const和转载 2017-10-07 02:48:15 · 3548 阅读 · 0 评论 -
<C语言>实现输入几个数,先倒叙排列,再用“冒泡排序”方法从小到大排列
C语言的数组,冒泡排序,元素交换原创 2017-08-10 17:46:32 · 1338 阅读 · 1 评论 -
<C语言>带参数的主函数理解int main(int argc, char *argv[])
带参数的主函数有助于我们不把代码写死,利于变通,在很多场合是极其方便的。比如编写一个聊天程序,连接对方的时候需要输入对方网址。如果在代码中写死,很不方便,假如采用主函数带参,每次运行程序的时候后面加上对方网址即可。我们先来看一段代码和运行结果:#include int main(int argc,char* argv[]) { int i; p原创 2017-08-09 19:46:33 · 1458 阅读 · 1 评论 -
<c>如何将数组初始化为0?
转载自:http://www.cnblogs.com/programnote/p/4719078.html如何将数组初始化为全0?C语言中,声明数组的语句:int arr[100];这样声明得到的数组里面的存储的是随机的我们不知道的数据,对用户来说就是垃圾。有许多情况我们要将数组初始化为全零的情况才能进行其他操作。最简单的方法就是用一个循环吧数组所有元素设置为0:int...转载 2017-10-04 23:05:01 · 38777 阅读 · 6 评论 -
C语言通过偏移获取文件大小
#include <stdio.h>int main(){ FILE *fp = NULL; fp = fopen("D:\\test.txt", "r"); if (!fp) { printf("open file failed!\n"); return 0; } // 以文件末尾为基准,偏移0字节 fseek(fp, 0, SEEK_END)...原创 2019-05-21 11:22:59 · 1271 阅读 · 0 评论 -
memcpy函数改进版memcpyEx函数源码
memcpy函数用于拷贝内存,但是该函数天生带有缺陷,即没有考虑内存重叠的情况。改进版拷贝速率比memcpy拷贝速率慢。 // 内存拷贝函数改进版,考虑内存重叠情况void *memcpyEx(void *dst, const void *src, size_t len){ if (dst == NULL || src == NULL) return NULL...原创 2018-08-06 11:23:28 · 497 阅读 · 0 评论 -
<C语言>输入一个数求其阶乘(while循环和for循环)
#include //输入一个整数,求其阶乘//作者:wsgint main(void){ int a; printf("Please input integer a:\n"); scanf("%d", &a); int i = 1; int num = 1; //使用for循环 /************* for( ; i<=10; i++) { nu原创 2017-08-08 20:27:52 · 12661 阅读 · 2 评论 -
<C语言>递归思维及其实现-----汉诺塔问题
1、概念:·一个过程或一个函数,在其定义或者说明中有直接或间接地调用自身的一种思想方法。2、递归条件:·子问题和原始问题是相同的事情;·不能无限制地调用,必须有个出口(边界条件)。3、如何设计递归算法:·确定递归公式;·确定边界条件。4、递归一般用来原创 2017-08-17 11:08:21 · 863 阅读 · 0 评论 -
Socket编程常用API
1. 创建套接字:接口声明:int socket(int domain, int type, int protocol); 参数: domain:域。AF_INET/PF_INET: 网际协议 AF_UNIX/PF_UNIX:本地协议,可写成 AF_LOCAL/PF_LOCALtype:类型。SOCK_STREAM:流式套接字 SOCK_DGRAM:数据报套接字原创 2017-10-22 20:03:25 · 548 阅读 · 0 评论 -
6.内存的布局
一块内存分为多个部分,分别存放不同的数据,它是与CPU进行沟通的桥梁。一、内存布局原创 2017-09-21 12:49:14 · 697 阅读 · 1 评论 -
<数据结构与算法><C>单向链表结构设计学生信息管理系统——附:源码、简单的Makefile、思维导图
单链表实现学生信息管理系统,包含了单链表的各种基本操作———(稳定,BUG少)原创 2017-08-26 19:20:09 · 2227 阅读 · 0 评论 -
<C语言>如何使用C语言代码打印“心形”图案?
作者:wsg时间;2017年8月14日//版本一:单个字符的心形图案#include int main(void){ float a,x,y; for(y=1.5f; y>-1.5f; y-=0.1f) { for(x=-1.5f; x<1.5f; x+=0.05f) { a = x*x+y*y-1; //这里的@符号即为打印出的心形图案符号,可更原创 2017-08-14 20:28:45 · 110906 阅读 · 13 评论 -
<C语言>关于函数返回值是指针,取不到值的问题研究
先来一段代码:#include int main(int argc, char *argv[]){ void (*p)(); int a = 1; p = &a; printf("a的值:%d\n", a); printf("*p的值:%d\n", *p); printf("*p的十六进制值:0x%x\n", *p); printf("\n"); print原创 2017-10-06 23:39:58 · 704 阅读 · 0 评论 -
<C语言>零长数组
转自:http://blog.csdn.net/vincent040/article/details/50614430可以定义长度为0的数组,这样的数组被称为零长数组或者柔性数组,通常被用在结构体中存放长度可变的数据。例:struct node{ int a; float f; char data[0];转载 2017-10-06 23:22:02 · 297 阅读 · 0 评论 -
<C语言>打印(输)出系统时间-----time相关函数
简单打印一下系统时间:#include #include int main(void){time_t t;struct tm *timeinfo; //结构体time(&t);timeinfo = localtime(&t);printf("时间:%s\n", asctime(timeinfo)); //以字符串形式输出localtime本地时间原创 2017-08-08 19:19:26 · 10753 阅读 · 0 评论 -
<Linux>linux-C动态链接库
作者:wsg时间:2017.8.9--21:00一、参考博文:http://www.cnblogs.com/Anker/p/3527677.html二、功能函数产生.so文件(动态链接库):/*****func.c*****/#include "wsg.h"//加法int add(int a, int b){ return (a + b);}int sub(i原创 2017-08-09 20:45:19 · 449 阅读 · 0 评论 -
<C语言>编写一个程序,该程序读取输入直到遇到#字符,然后报告读取的空格数目、读取的换行数目以及读取的所有其他字符数目。
版本一:(较为简单的做法)先来代码:#include /***题目:编写一个程序,该程序读取输入直到遇到#字符,然后报告读取的空格数目、读取的换行数目以及读取的所有其他字符数目。****作者:wsg****时间:2017年8月11日****版本:一***/int main(int argc, char **argv){ char ch; int space = 0;/原创 2017-08-11 17:18:41 · 8340 阅读 · 1 评论 -
<C语言>如何一步一步根据简单的代码联想到更多的功能?(实现输入一个整数,输出比它小包括它本身的所有素数。)
作者:wsg时间:2017年8月12日学习重要的是会举一反三,能够自我总结,自己思考!题目:输入一个整数,输出比它小包括等于它的所有素数1、把需要的基础功能做出来:首先,素数怎么求? 再者,怎么实现输出比它小包括它本身的素数?2、这个程序输入为1或者负数的时候,能让程序输出错误提示,并且不会退出程序,再给机会重新输入吗?(此时并没有实现输入正确的时候,程序也不会原创 2017-08-12 12:02:23 · 1424 阅读 · 0 评论 -
<C语言>结构体理解
题目:关于C语言结构体的理解作者:wsg时间:2017年8月14日一、先来看看理论点的不好理解的结构体定义:{·概念:结构体(structure)是由各种类型组成的的复合数据类型。·定义一个结构体类型的语法如下:struct {成员列表};·定义一个结构体变量的3种形式:①常规形式:struct {成员列表};struct ;②与类型定原创 2017-08-14 15:34:10 · 749 阅读 · 0 评论 -
<C语言>结构体的各种定义、初始化、操作代码实例----注释详解
//>>>>>>>>//作者:wsg//时间:2017年8月14日#include #include struct student //定义结构体模板{ char name[50]; int age; float score;};/*//还可以这样定义struct student{ char name[50]; int age; float score;}原创 2017-08-14 16:21:11 · 1299 阅读 · 0 评论 -
<C语言>结构体的参数传递和指针传递(注释详解)
本文包括两个版本,都讲到了参数传递和指针传递,作者水平有限,如有不足之处,敬请指正!一、//>>>>>>//作者:wsg//时间:2017年8月14日//版本一:皆采用函数返回值为整个结构体的方式#include struct gas{ float distance; float gals; float mpg; //题目定义:mpg = distance *原创 2017-08-14 19:27:13 · 5345 阅读 · 0 评论 -
<C语言>特殊指针——const指针、void指针、NULL指针、零指针、野指针
const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性指向常量的指针:const int *pa;int const *pa;两者等价。因为指向常量的指针有时候会指向常量,所以它具有这个性质:“不能靠解引用改变它指向的对象的值”,以此保护它所指向的常量的常量性:*pa =d; // 不可行(d是已经声明过的整型)但指针本身的值原创 2017-08-16 16:14:13 · 1522 阅读 · 0 评论 -
<C语言>实现简单的计算器(循环输入,加减乘除法可选)
要求使用函数,循环输入,有选择功能,有退出选项。//作者:wsg//时间:2017年8月16日//版本一:函数传参,函数调用,使用goto实现循环输入#include int add(int x, int y); //申明加法函数int sub(int x, int y); //申明减法函数int mul(int x, int y); //申明乘法函数int div(int原创 2017-08-16 19:35:59 · 21966 阅读 · 6 评论 -
<C语言>函数的值传递与地址传递--以输入三个数并从小到大排列为例
C语言函数的值传递和地址传递实例分析(通过定义一个函数,实现输入三个数,按从小到大顺序输出)。原创 2017-08-09 14:27:12 · 2266 阅读 · 0 评论 -
<C语言>九九乘法表
#include //九九乘法表//编者:wsgint main(void){ int i,j; for(i=9; i>0; i--) { for(j=1; j<=i; j++) { printf("%d*%d=%d\t", i, j, i*j); } printf("\n"); } return 0;}结果:如果要正序输出呢?将for(i原创 2017-08-08 20:44:41 · 654 阅读 · 0 评论 -
<C语言>头文件封装
使用C语言编写程序的时候,我们往往会用到很多头文件,然而作为一个偷懒的程序员,我实在嫌麻烦,所以做了一个头文件封装,把大部分用到的头文件都封装到了我自己的命名头文件中。从此,在头文件引用时我只需要#include "wsg.h"即可。需要注意的是,这样写出来的代码别人若没有你的这个头文件,别人使用不了你的代码!#ifndef _WSG_H_ //if no define----原创 2017-08-08 20:14:52 · 3708 阅读 · 0 评论 -
<C语言>输入某个大写字母,产生一个金字塔图案。(字符与数字间的转换)
题目:先来看一下源程序和运行结果:#include //作者:wsg//时间:2017年8月11日int main(int argc, char *argv[]){ char ch;LOOP: printf("请输入一个大写字母:\n"); scanf("%c", &ch); while((getchar()) != '\n'); //scanf原创 2017-08-11 10:52:11 · 12245 阅读 · 0 评论 -
<数据结构与算法>最优二叉树——霍夫曼树
一:什么是最优二叉树?最优二叉树就是从已给出的目标带权结点(单独的结点) 经过一种方式的组合形成一棵树.使树的权值最小. 最优二叉树是带权路径长度最短的二叉树。根据结点的个数,权值的不同,最优二叉树的形状也各不相同。它们的共同点是:带权值的结点都是叶子结点。权值越小的结点,其到根结点的路径越长。官方定义:在权为wl,w2,…,wn的n个叶子所构成的所有二叉树中,带权路径长度转载 2017-08-29 15:09:23 · 1585 阅读 · 0 评论 -
<C语言>在C语言程序中实现shell命令的效果
一、rm为例:如要删除当前文件夹下的test.txt文件/* 第一种方法 */char arr[20];snprintf(arr, "rm %s", "test.txt");system(arr);/* 第二种方法 */system("rm test.txt");二、ls为例#include int main(int argc, char *argv[])原创 2017-09-13 16:02:50 · 419 阅读 · 0 评论 -
<C语言>函数作实参传递给另一函数
/********题目:编写一个transform()函数,它接受4个参数:包含double类型数据的源数组名,double类型的目标数组名, 表示数组元素个数的int变量以及一个函数名(或者等价的指向函数的指针)。transform()函数把指定的 函数作用于源数组的每个元素,并将返回值放到目标数组中。作者:wsg时间:2017年8月15日********///版本一:transfo原创 2017-08-15 22:39:22 · 1074 阅读 · 0 评论 -
<C语言>printf的对齐输出
C语言中,常见的有两种方式可以实现其输出字符串或数字对齐输出制表符\t 制表符\t输出的时候,会移动输出光标,实现对齐效果。因此可以在输出的对应位置,增加\t来实现对齐。但有个缺点:要求每行相同列输出占用空间差别不可以太大。(若输出的是数字信息,可以直接将log信息copy到excel表格中,能很好地统计数字数值信息)加入占用宽度控制数字 使用printf格式化输出时,每个控制字符转载 2017-08-26 15:31:42 · 2249 阅读 · 0 评论 -
<C>“指针数组与数组指针+指针函数与函数指针”---区别理解
作者:wsg时间:2017年8月15日这四个东西很绕,学习初期让人傻傻分不清楚,实际应用当中也是让人头疼不已,下面,我用最简单的方式来教大家理解。一、指针数组与数组指针(着重关注后面两个字)1、指针数组:看后面两字,“数组”,说明它是一个数组,这个数组里面全部元素都是指针。例:int *a[5]相当于:int a[5];int *p...原创 2017-08-15 17:25:49 · 401 阅读 · 0 评论