C语言 - 技术教程文章

c语言中printf函数输出十进制、八进制和十六进制数【代码】【图】

c语言中printf函数输出十进制、八进制和十六进制数。1、#include <stdio.h>int main(void) {unsigned a = 45;printf("101010 %u\n", a);printf("888888 %o\n", a);printf("161616 %X\n", a);return0; } 原文:https://www.cnblogs.com/liujiaxin2018/p/14794174.html

【C语言探索之旅】 第二部分第二课:进击的指针,C语言的王牌!【图】

650) this.width=650;" src="/upload/getfiles/default/2022/11/13/20221113052102017.jpg" />内容简介1、课程大纲2、第二部分第二课: 进击的指针,C语言的王牌3、第二部分第三课预告: 数组课程大纲我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案。还会带大家用C语言编写三个游戏。C语言编程基础知识什么是编程?工欲善其事,必先利其器你的第一个程序变量的世界运算那点事条件表达式循环语句实战:第一个...

C语言实现pwd—关于linux文件系统【代码】

#include <stdio.h> #include <stdlib.h> #include <dirent.h> #include <sys/types.h> #include <sys/stat.h> #include <string.h> #include <unistd.h> /*DIR *opendir(const char *pathname),即打开文件目录,返回的就是指向DIR结构体的指针struct __dirstream { void *__fd; char *__data; 实施int __entry_data; char *__ptr; int __entry_ptr; size_t __allocation; size_t __size; __libc_lock_d...

c语言设置cpu affinity (设置程序需要使用的cpu内核) cpu mask【图】

最近打算写个小程序, 需要控制使用的是哪个 cpu 内核,所以做了一些调查, 整理一下分享给大家。 ps: 因为毕业季很久没有写博客了, 以后继续。 顺便鄙视一下那些转载不声明出处的, by watkins.songpps: 最近有了个新的id, 因为在Oracle, wei.x.song, 不知到以后用哪个id比较酷一点主要参考: http://www.gnu.org/software/libc/manual/html_node/CPU-Affinity.html/http://stackoverflow.com/questions/7296963/gnu-source-and-...

c语言:用fgetc函数从键盘逐个输入字符,用fputc函数写到磁盘文件

用fgetc函数从键盘逐个输入字符,用fputc函数写到磁盘文件。解:程序: #include<stdio.h>#include<stdlib.h>//exit使程序终止int main(){FILE* fp;char ch, filename[10];printf("请输入所用的文件名:");scanf("%s", &filename);if ((fp = fopen(filename, "w")) == NULL){printf("无法打开此文件\n");exit(0);}ch = getchar();printf("请输入一个准备存储到磁盘的字符串(以#结束):");ch = getchar();while (ch!=‘#‘){fputc(c...

陈正冲老师讲c语言void关键字

1. void avoid的字面意思是“空类型”,void *则为“空类型指针”,void *可以指向任何类型的数据。void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量,看看下面的例子:?1voida;Visual C++6.0上,这行语句编译时会出错,提示“illegal use of type ‘void‘”。不过,即使void a的编译不会出错,它也没有任何实际意义。void真正发挥的作用在于:?12(1) 对函数返回的限定;(2) 对函数参数的限定。 众...

C语言实现将日期、时间保存到文本文件中【代码】【图】

今天突然兴起,看来一下C语言的文件操作,以前在学习的时候,总是一带而过,觉得没有什么用处;但是现在看来,还真的没有什么用处,最后,我现在还有用到,当然这只是我的个人认为,并不能说明什么,在此我将自己写的一段代码附上,希望能和大家一同学习1、打开一个文本文件1 FILE *fopen( constchar * filename, constchar * mode );1linux文件路径: 2 linux:fopen("/tmp/test.txt", "w+"); 34windows文件路径: 5 windows:fope...

【三支火把】---常用C语言控制台函数总结(持续更新)【代码】

写了这么久的C程序,每次看到输出的结果都是从上往下排列的黑白框,有没有感觉很无聊啊?今天再次总结一个常用的控制台函数,能够帮助你做好一个好看的界面。1.设置光标位置代码如下: 1int main(void)2{3int a = 5; 4 COORD pos = {10,10}; //定义光标坐标位置 5 HANDLE hout;//定义一个句柄 6 hout = GetStdHandle(STD_OUTPUT_HANDLE); //获得输出设备的句柄 7 SetConsoleCursorPosition(hout,pos); //设定...

C语言01深入理解基本概念(一)【代码】

基本数据类型分析 数据类型 什么是数据类型 ? ? 数据类型可以理解为固定内存大小的别名 ? 数据类型是创建变量的模子 类型的本质 char short int 1 byte 2 byte 4 byte 内存空间 char c short s int i 变量本质 ? 变量是一段实际连续存储空间的别名 ? 程序中通过变量来申请并命名存储空间 ? 通过变量的名字可以使用存储空间auto,register,static 分析 auto ? C 语言中的变量可以有自己的属性 ? 在定义变量的时候可以加上“ 属...

C语言常见问题分析(1)

数据部分(1)把long型数据赋值给short型数据会发生二进制截断的现象,如果long型数据的大小恰好在short的范围之类,那么程序将正常运行,不会出现异常。如果long型数据的范围超过了short 的范围那么short类型数据将只能的到long型二进制数据的一部分。而且是有低位向高位赋值的数据。(2)C语言里面,默认%f是小数点后6位,如果想小数点后面16位,写成%.16lf不会自动四舍五入的,double是一个近似值,通常没有办法做的很精确.精确...

C语言 二级指针内存模型混合实战【代码】【图】

//二级指针内存模型混合实战#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h>//将内存模型①和内存模型②的数据拷贝到内存模型③char ** threemodel(char **pin1,int num1,char (*pin2)[20],int num2,char **pin3,int *pnum3){if (pin1==NULL){printf("pin1==NULL\n");}if (pin2 == NULL){printf("pin2==NULL\n");}if (num1 == 0){printf("num1 == 0\n");}if (num2 == 0){printf("num...

c语言继续学习2【代码】

#include <iostream>void func(int a[100]) {int num = a[2];int size = sizeof(a);printf("num = %d\n", num);printf("size = %d\n", size); }int main() {int buf[10] = {1,2,3,4,5};func(buf);system("pause");return0; }输入结果:num = 3 size = 4 原文:https://www.cnblogs.com/weiyouqing/p/12926286.html

C语言 动态静态链表(基础)【代码】【图】

我本专业是C#, .net ,自学C ,感觉还行,也是基础小白 ,望大神们多多关照 注意: 别忘了加上选址符 & 注意哦**** 单向动态链表原理很简单:就是 结构体定义定义一个本身结构体类型指针变量用来保存下一个结构体组地址, 最后一个本身结构体类型指针变量存NULL, 然后定义一个结构体指针变量,指向首地址,就层层相扣了 直接上代码把: 后面更新 插入链表和修改删除 1#define Len sizeof(struct stude...

C语言联合体的灵活运用【代码】

一段联合体的程序如下 1 #include <stdio.h>2typedef union {3 unsigned int a32[2];4 unsigned short a16[1];5 unsigned char a8[1];6} T_union;7 8void main()9{ 10int i; 11 T_union v={0}; 12for(i=0;i<8;i++) v.a8[i]=i; 1314 printf("占用空间:%d\n",sizeof(v)); 1516 printf("\n a8:"); 17for(i=0;i<8;i++) printf("%3.2x",v.a8[i]); 1819 printf("\na16:"); 20for(i=0;i<4;i++) printf("%5.4x",v.a...

SQLite教程(十四):C语言编程实例代码(2)

三、高效的批量数据插入: 在给出操作步骤之前先简单说明一下批量插入的概念,以帮助大家阅读其后的示例代码。事实上,批量插入并不是什么新的概念,在其它关系型数据库的C接口API中都提供了一定的支持,只是接口的实现方式不同而已。纵观众多流行的数据库接口,如OCI(Oracle API)、MySQL API和PostgreSQL API等,OCI提供的编程接口最为方便,实现方式也最为高效。SQLite作为一种简单灵活的嵌入式数据库也同样提供了该功能,但是...

求1000-2000之间的闰年,C语言代码实现【代码】

题目:打印闰年要求:打印1000年到2000年之间的闰年思路:满足闰年的条件、1.可以被4整除但不能被100整除2.可以被400整除满足这两个条件之一的都可以代码实现int main(){int count = 0;//解法一int year = 1000;for (year = 1000; year <= 2000; year++){if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)){printf("%d ", year);count++;}}printf("\n总共有%d年\n", count);return 0; }运行结果 ![](https://s4.51cto....

c语言中使用宏,需要注意的的几点

使用#define来定义一些宏,进行一些简洁的替换甚至一些带参数的宏,在linux c代码中很常见,说明它很好、很有用,但是它也有一些复杂的规矩和陷阱需要注意,下面我记录一些,仅供参考。1、当使用"\"来换行时,第二行要顶格写,否则会多出一个空格。例如:#define OW "what are you doi \ ng?"第二行的ng?"没有顶格写,那么进行替换的时候,会这样:what are you doi ng?正确的定义为:#define OW "what are you do...

黑马程序员——C语言知识小节------初学者容易忽略的知识点【代码】

这两天复习了之前学习的C语言基础知识,发现了许多对于初学者来说重要但是却容易被忽略的问题,在此总结一下,与君共勉。1、程序中如果用到头文件stdio.h的内容,即使不写#include <stdio.h>程序也可以正常运行,只会警告,不会报错。这是因为链接程序会自动链接库函数。所以如果使用了非库函数的头文件,就必须要写头文件,不然程序就会报错。2、在使用scanf函数输入参数时,若以空格作为分隔,如:int a, b; scanf("%d %d", &a, ...

【c语言】购房从银行贷了一笔款d,准本每月还款额为p,月利率为r,计算多少月能还清

// 购房从银行贷了一笔款d,准本每月还款额为p,月利率为r,计算多少月能还清。 // d = 300000 p = 6000 r = 0.01 对求得的月份取小数点后一位,第二位四舍五入 // m = log( p/(p-d*r))/log(1+r)#include <stdio.h> #include <math.h>int main() {float d = 300000.0;float p = 6000.0;float r = 0.01;float m;m = log( p / ( p - d * r ) ) / log ( 1 + r );printf("需要 %3.1f 个月还清\n",m);return 0; }<img src="http://img...

C语言位段的应用:统计二进制的位数【图】

位段是C语言中使用较少的一种特殊的结构体,C语言允许在一个结构体中以位为单位来指定其成员所占内存长度,这种以位为单位的成员称为“位段”或称“位域”( bit field) 。利用位段能够用较少的位数存储数据。信息的存取一般以字节为单位。实际上,有时存储一个信息不必用一个或多个字节,例如,“真”或“假”用0或1表示,只需1位即可。在计算机用于过程控制、参数检测或数据通信领域时,控制信息往往只占一个字节中的一个或几个二...

人生三分之一埋在土里的时候,选择了学习OC语言 1 类和对象【图】

人生三分之一埋在土里的时候,选择了学习OC语言 1 类和对象今天开始整理我所理解的东西,希望能够帮助一些像我一样想要学习一门计算机语言的朋友们, 可能在很多的地方理解的也不够深入,有不对的地方还希望关注的朋友能够谅解,也多多提您的宝贵意见!学习前需要具备的条件: 首先你要有C语言的一些基础,如果你没有,那可以先去自学一下C语言, 我是通过以下网站进行学习的,也希望对你能够有帮助! http://c.biancheng.net/cpp/u/jiaocheng...

C语言考试定在哪天bupt【代码】

#include<stdio.h> int main() {int q[4];int sum=0;int i;for(i=0;i<4;i++){scanf("%d",&q[i]);sum=sum+q[i];}char a[4]={‘A‘,‘B‘,‘C‘,‘D‘};float percent[4]={(float)q[0]/sum,(float)q[1]/sum,(float)q[2]/sum,(float)q[3]/sum};//printf("%.2f",percent[0]);for(i=0;i<4;i++){if(q[i]>3)printf("%c:%.2f\n",a[i],percent[i]);} } 原文:https://www.cnblogs.com/yuhaowang/p/10226298.html

C语言中数组的另一种常用写法(数组大小可变!!!)【代码】

在 C 和 C++ 中,数组在声明过程中,数组名称为 const 指针,不许修改。且数组的大小在声明时被写死,非常不方便。C语言中常用下面代码替代指针。#include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h>int main(int argc, char* argv[]) {int n;scanf_s("%d", &n);// 使用指针代替数组,可实现一个数组的大小可变(使用时最好用const指针)// 最好判断一下是否内存申请成功,即判断p是否为NULLint* p = (...

使用Beaglebone Black的I2C (二)——使用C语言和i2c-dev驱动

在本博客的《使用Beaglebone Black的I2C(一)》中,介绍了BBB上无需编程对i2c总线进行读写操作的方法,本文将介绍如何在c语言程序中使用i2c-dev驱动来操作i2c设备。 以下将还以前文中使用过的L3G4200D三轴陀螺仪为例。BBB自带了i2c-dev驱动,它使用ioctl方法对i2c设备进行配置,然后利用read()、write()函数就可以操作i2c设备了。要操作某个i2c设备,首先要确定它的地址。按照我在前文中的说法,通常i2cdetect显示的器件地址是由“...

【C语言天天练(三)】函数

对于程序来讲,函数的地位是不言而喻的。下面先给出函数的定义,然后根据定义分析C语言中的函数。函数定义:类型函数名(形式参数)代码块由定义可以看出函数主要包括四部分:函数类型、函数名、函数形参、函数代码块。函数类型:指明了函数返回值的类型,是整数、浮点数、指针甚至是结构体等等。需要注意的两点:1、如果类型是void,则没有返回值。如果是void *型的返回值,那可以返回任意类型的指针,这是ANSI C标准定义的,void...

【C语言】指针增减【代码】

int *pa = NULL;int *pb = pa + 15;printf("%x\n", pb);char *pca = NULL;char *pcb = pca + 15;printf("%x\n", pcb);short *psa = NULL;short *psb = psa + 15;printf("%x\n", psb);上面代码的结果是:3cf1e 分析:int型指针,每次加1会向后移动一个int大小的距离,在32位情况下,移动32bit,即4个字节。pa + 15,即向后移动了15个int的距离,即15 * 32 bit = 15 * 4字节指针中数字是记录字节数的,故pb = 60 = 3c (16进制)其他分析...

C语言 BIT【代码】

数字金字塔 #include <stdio.h> int main() {int i, j;int n; char maxLetr; char ch[26]; for(i=0; i<26; i++){ch[i] = ‘A‘ + i;}int x;scanf("%d,%c", &x, &maxLetr); getchar(); // 吸收回车for(i=0; i<26; i++) {if(ch[i] == ‘A‘+x-1){n = i + 1;}}printf("");for(i=1; i<=n; i++) {for(j=0; j<n-i+1; j++){printf("");}for(j=0; j<i; j++) { if(j<n-2){printf("%c ",ch[j]);}else{printf("%c "...

regex c语言

最近一直在补习c语言的底子功夫,关于正则表达式的c教程,看了man手册感觉还不错。REGEX(3) Linux Programmer‘s Manual REGEX(3)NAME regcomp, regexec, regerror, regfree - POSIX regex functionsSYNOPSIS #include <sys/types.h> #include <regex.h> int regcomp(regex_t *preg, const char *regex, int cflags); int regexec(const regex_t *preg, const char *string, size_t nmatch, ...

C语言 共用体基础【图】

原文:https://www.cnblogs.com/souhaite/p/10963266.html

关于C语言中的一些宏的小知识【代码】

关于C语言中的一些宏的小知识1.##和#c语言中,##表示把两个宏参数贴合在一起,即,#define call(x,y) x##y ,执行call(x,y)结果为xy,例如,int x=2,y=5;int xy=90;printf("%d\n",call(x,y));//结果为90##被称为连接符,用来将两个宏参数连接为一个宏参数。而单个#的功能是将其后面的宏参数进行字符串化操作,简单地说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号,使其成为字符串。以上引自百度知道。但是好像##和...