C语言基础
文章平均质量分 70
C语言基础
呆萌宝儿姐
CSDN专家博主、阿里云开发者社区专家博主、51CTO社区专家博主、360书馆认证博主、知乎掘金B站等平台受邀作者。
如遇开发、程序等需求,博客首页下拉加入公众号,私信博主
展开
-
void 类型不能用来初始化char* 类型的实体
问题我想,问题肯定大多是出现在大家从网上复制下来代码,粘贴到VS上,然后发现报错。解决强制转化首先瞅瞅你的源文件类型<如果是 .cpp 文件,也就是C++文件,那么你这样写是错误的,在C语言里不强制转换void *不会报错,但是在C++里不行,所以改法是:对void * 进行强制类型转化。例如这样:char* p = (char *)malloc(sizeof(char) * 64);改为.c文件或者将 .cpp 改为 .c 就可以了在c文件中运行不会报错,不用强转当然,上面原创 2021-10-25 03:45:00 · 4564 阅读 · 2 评论 -
C语言的那些关键字(32个)
C语言32个关键字第一类:数据类型关键字A基本数据类型(5个)void 声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果。char 字符型类型数据,属于整型数据的一种。int 整型数据,通常为编译器指定的机器字长。float 单精度浮点型数据,属于浮点数据的一种,小数点后保存6位。double 双精度浮点型数据,属于浮点数据的一种,比float保存的精度高,小数点后保存15/16位。B类型修饰关键字(4个)short 修饰int,短整型数据,可省略被修饰的原创 2021-10-14 13:43:00 · 3362 阅读 · 0 评论 -
C语言格式输入与输出深度剖析
文章目录C语言的标准库函数头文件格式输入与输出printf函数(格式输出函数)格式字符%d格式符:输出十进制整数,有3种用法%md格式:m指定输出字段的宽度%ld格式:输出长整型数据o格式符:八进制输出整数x格式符:十六进制输出整数u格式符:十进制输出unsigned型数据c格式符:输出一个字符f格式符:输出实数e格式符:指数形式输出实数g格式符:输出实数scanf 函数(格式输入函数)案例:输入三角形边长,求面积所谓数据的输入输出是从计算机角度出发的。C语言本身没有I/O语句,所有I/O都由函数来实现原创 2021-09-28 20:02:55 · 3355 阅读 · 0 评论 -
C语言 字符数据输入输出
文章目录C语言的标准库函数头文件字符数据的输入输出putchar 函数(单字符输出函数)输出一个字符:输出控制字符输出转义字符getchar 函数(单字符输入函数)所谓数据的输入输出是从计算机角度出发的。C语言本身没有I/O语句,所有I/O都由函数来实现。C语言的标准库函数由编译系统提供的一系列函数,以库形式存放在系统中,不是C语言文本的组成部分。库函数已编译成目标文件(.obj),在连接阶段才与源程序编译成的目标文件相连接,生成可执行文件。调用形式:函数名(参数表)注意在调用C语言库函数原创 2021-09-28 09:17:12 · 8157 阅读 · 6 评论 -
C语言沈梦溪推箱子小游戏
文章目录效果图项目链接代码效果图项目链接https://download.csdn.net/download/weixin_45525272/21106512代码#include<stdio.h>#include<conio.h>#include<graphics.h> //图形库头文件#pragma comment(lib,"winmm.lib") //多媒体库 IMAGE img[8];//图片数组int x1, y1; //定义主原创 2021-08-16 11:41:10 · 4304 阅读 · 12 评论 -
编程常见扩展名解读
【扩展名解读】.sln: 通过为环境提供对项目、项目项和解决方案项在磁盘上位置的引用,可将它们组织到解决方案中。.suo:储存了用户界面的自定义配置,包括布局、断点和项目最后编译的而又没有关掉的文件等,以便下一次你打开Visual Studio可以恢复这些设置,它们就是隐藏文件。.clw文件记录了类的信息,如果classView中某个类不见了,重新生成该文件就可以了,方法:删除此文件,点击“建立类向导”,根据提示输入工程名称就可以了;.ncb文件记录了类的提示信息,如果类的成员函数和变量的提示不见了原创 2020-07-31 19:49:11 · 5497 阅读 · 1 评论 -
C语言水仙花数全部输出
什么水仙花数?水仙花数其实是自幂数的一种,自幂数是一个自然数中它每个个位上的数字n次方相加之和为它本身!,这里n可以称为立方指数!而水仙花数的n次方的n是3,这里3可以称为自然数的立方指数次方即为自身相乘多少次,一般用表示,比如1的3次方表示为:13比如153这个数是一个水仙花数,为什么呢?下面我们用公式来看一下:153有三个数位1、5、31的三次方为1:111=1列:11=111=15的三次方为125:555=125列:55=25255=1253的三次方为27333=原创 2020-06-23 09:24:32 · 4929 阅读 · 0 评论 -
函数调用约定:__stdcall、__cdecl和__fastcall介绍
想深入了解可学习汇编语言去了解内存机制一、问题引导:C语言中函数参数的入栈顺序C程序栈底为高地址,栈顶为低地址。C方式参数入栈顺序(从右至左)的好处就是可以动态变化参数个数。通过栈堆分析可知,自左向右的入栈方式,最前面的参数被压在栈底。除非知道参数个数,否则是无法通过栈指针的相对位移求得最左边的参数。这样就变成了左边参数的个数不确定,正好和动态参数个数的方向相反。因此,C语言函数参数采用自右向左的入栈顺序,主要原因是为了支持可变长参数形式。二、、函数调用约定(Calling Convention原创 2020-06-01 16:50:37 · 5764 阅读 · 1 评论 -
struct结构体里能放函数吗?
C语言C语言里面不能,在C语言里结构体是一种复合数据类型只能存放数据,不过可以定义一个指向函数的指针进行使用。C++(C++并发编程多体现)C++里可以在结构体内定义函数,用法和class定义类是一样的,说穿了struct 和 class用法相同,但要注意的一点是内,struct默认的是public类型,然而class默认的是private类型的。下面有一个C++结构体定义函数的小例子,大家可以试一试#include<iostream>#include<string>原创 2020-05-30 20:42:02 · 18533 阅读 · 2 评论 -
C++学习——数据类型(强制)转换详解
有时,编程的过程中需要将值从一种数据类型转换为另一种数据类型。C++ 提供了这样做的方法。如果将一个浮点值分配给一个 int 整型变量,该变量会接收什么值?如果一个 int 整数乘以一个 float 浮点数,结果将会是什么数据类型?如果一个 double 浮点数除以一个 unsigned int 无符号整数会怎么样?是否有办法预测在这些情况下会发生什么?答案是肯定的。当运算符的操作数具有不同的...原创 2020-04-03 13:51:31 · 6824 阅读 · 6 评论 -
C语言 函数指针和指针函数用法
前言函数指针和指针函数,在学习 C 语言的时候遇到这两个东西简直头疼,当然还有更头疼的,比如什么函数指针函数、指针函数指针、数组指针、指针数组、函数指针数组等等,描述越长其定义就越复杂,当然理解起来就越难,特别是刚开始学习这门语言的童鞋,估计碰到这些东西就已经要崩溃了,然后好不容易死记硬背下来应付考试或者面试,然后过了几天发现,又是根本不会用,也不知道该在哪些地方用,这就尴尬了。今天这里只讲两...原创 2020-04-03 13:43:36 · 4351 阅读 · 0 评论 -
C语言学习——sprintf函数详细解释及其用法
sprintf指的是字符串格式化命令,函数声明为 int sprintf(char *string, char *format [,argument,…]);,主要功能是把格式化的数据写入某个字符串中,即发送格式化输出到 string 所指向的字符串。sprintf 是个变参函数。使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性。解决这个问题,可以...原创 2020-03-23 21:12:51 · 68450 阅读 · 5 评论 -
C语言学习——字符串与整数、浮点数、无符号整数之间的转换常用函数
atof(将字符串转换成浮点型数)表头文件 #include <stdlib.h>定义函数 double atof(const char nptr);函数说明atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(’’)才结 束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,...原创 2020-03-17 10:50:30 · 8492 阅读 · 0 评论 -
C语言学习——位运算
原码反码补码介绍原码 就是前面所介绍的二进制定点表示法,即最高位为符号位,“ 0 ”表示正,“ 1 ”表示负,其余位表示数值的大小。反码 表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。补码 表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加 1 。补码详细介绍补码是为了表示一个负数的二进制形式。其转化方式是,先将负数当成正数,转化成二进制...原创 2020-03-03 20:03:51 · 4257 阅读 · 0 评论 -
C语言求素数的几种方法
一、判断n是否能被2~n-1整除输入的数n不能被2-(n-1)整除,说明是素数输入的数n能被2-(n-1)整除,说明不是素数注意:1不是素数,素数是指大于1的自然数,除了1和该数自身外,无法被其他自然数整除的数。法一:#include<stdio.h>int main(){ int i, n; printf("请输入一个数:"); scanf(...原创 2020-02-17 20:01:45 · 48624 阅读 · 5 评论 -
C语言——文件操作详解
文件打开与关闭C文件操作用库函数实现,包含在stdio.h中。文件使用方式:打开文件→文件读/写→关闭文件系统自动打开和关闭三个标准文件:标准输入------键盘 stdin标准输出------显示器 stdout标准出错输出-----显示器 stderr文件读写操作当我们把文件打开之后,就可以对它进行读与...原创 2020-02-13 18:10:36 · 4630 阅读 · 4 评论 -
C语言——位运算和移植性整数
案例:#include <stdio.h>#include <stdint.h>int main(void){ int8_t i8 = 100; int16_t i16 = 666; int32_t product = i8*i16; printf("product=%d\n",product); return 0;}结果:...原创 2020-02-13 16:33:57 · 3904 阅读 · 1 评论 -
C语言学习——结构体_联合体_枚举用法直通
一、结构体嵌套#include <stdio.h>// 出生日期:年月日struct sBirthday{ int iYear; int iMonth; int iDay;};// 公民信息struct sSCitizenIDInfo{ char cName[10]; char cSex[4]; sBirthday BirthDate; // 结构体变量...原创 2020-02-13 16:27:27 · 4604 阅读 · 1 评论 -
C语言学习——结构体数据类型
本章节比较简单不做过多说明,直接上案例,如有疑问,欢迎留言。结构体作为函数参数#include <stdio.h>#include <string.h>struct Books{ char name[50]; char author[50]; int book_id;};// 函数声明void printBook(struct Books *b...原创 2020-02-13 16:12:57 · 4281 阅读 · 0 评论 -
C语言学习——指针精华(3)工程项目
编程题一、定义一个数组,从键盘输入10个整数,将10个数字中的最大值和最小值进行位置交换 (使用指针的方式)。代码如下:#include"pch.h"#include<stdio.h>void SWAP(int*p1, int*p2);int main(){ int a[10]; for (int i = 0; i < 10; i++) { scanf_...原创 2020-02-13 15:56:05 · 4005 阅读 · 1 评论 -
C语言学习——指针精华(2)
字符指针作函数参数[用函数调用实现字符串的复制]⑴用字符数组作参数#include <stdio.h>void copy_string(char from[], char to[]);int main(){ char a[] = "I am a teacher."; char b[] = "You are a student."; printf("strin...原创 2020-02-13 15:45:42 · 4290 阅读 · 1 评论 -
C语言学习——指针精华(1)
C语言精华-指针01指针变量的引用代码入下://通过指针变量访问整型变量#include <stdio.h>int main(void){ int a, b, *p1, *p2; a = 100; b = 10; p1 = &a; p2 = &b; printf("a=%d, b=%d\n", a, b); printf("*p1=%d...原创 2020-02-13 15:08:15 · 4128 阅读 · 1 评论 -
C语言学习——预处理命名
一、宏定义编译:对源程序进行词法、语法分析,生成代码,优化等。作用:在编译之前,对源程序中的特殊命令做一些处理,生成扩展C源程序种类:宏定义 #define文件包含 #include条件编译 #if #else #endif等格式:“#”开头占单独书写行语句尾不加分号2)C语言允许宏带有参数。在宏定义中的参数称为“形式参数”,在宏调用中的...原创 2020-02-13 14:51:53 · 3915 阅读 · 1 评论 -
C语言学习——函数(含递归)
一、函数的几点说明:(1) 一个源文件由一个或者多个函数组成。(2) 一个C程序由一个或者多个源文件组成。(3) C程序的执行从 main 函数开始。(4) 所有的子函数都是平行的。(5) 从用户的角度看,函数分库函数和自定义函数。(6) 函数形式:①无参函数:主调函数无数据传送给被调函数,可带或不带返回值。②有参函数:主调函数与被调函数间有参数传递,主调函数可将实参传送给被调函数...原创 2020-02-13 14:14:01 · 4216 阅读 · 0 评论 -
C语言学习——数组
基础知识字符串处理函数包含在头文件 string.h 中字符串输出函数 puts格式: puts(字符数组)功能:向显示器输出一个字符串(输出完,换行)说明:字符数组必须以‘\0’结束。可以包含转义字符。输出时‘\0’转换成‘\n’,即输出字符后换行。字符串输入函数gets格式:gets (字符数组)功能:从键盘输入一个以回车结束的字符串放入字符数组中,并自动加‘\0’。...原创 2020-02-13 14:02:30 · 4119 阅读 · 0 评论