news 2026/10/17 10:47:43

c语言的基本知识

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
c语言的基本知识

1,“/”引起的错误:在我们现在的编译器中如果写下面这段程序,下面我们就来聊聊关于c语言的基本知识?接下来我们就一起去了解一下吧!

c语言的基本知识

1,“/”引起的错误:

在我们现在的编译器中如果写下面这段程序

int main() {

// create file in c:/

ofstream outupt(“test.txt”);

编译就会用字符的颜色来提示我们,这两行内容都被当做了注释的内容,但是如果在vim下编写程序,就不会出现代码颜色不一样的问题,导致程序出错,是什么原因呢,是因为”/”的问题,它在c 或者python语言中,代表的含义都是本行尚未结束,下一行仍和本行是一个整体,所以编译器会认为,两行都是注释,最终导致错误。

2, 想想这个表达式: y = x/*p 他的结果是什么呢? 有可能是x的值除以*p的值的结果赋给y,但是在实际编译中会出错,为什么? 因为编译器会把 /*当成注释的开始,之后的内容都是注释,但是要结束注释需要找到匹配的*/,但是没有找到,所以编译会出错。如果向改正程序的话,在/, * 之间加一个空格,或者给他们加一个(),就解决了。

3, #define PCHAR char*

PCHAR p1, p2;

typedef char* pchar;

pchar p3, p4;

那sizeof p1, p2, p3, p4都是什么呢,结果是4, 1, 4, 4,结果很奇怪吧,原因要追溯到编译器对#define的处理,是对#define定义的东西在预编译的时候进行替换,也就是说真正编译的时候是这个样子 char * p1, p2;这样该明白p2的值是1的原因了吧。

4,enum enum_value {

VALUE_ONE,

VALUE_TWO,

VALUE_THREE,

}enum_val;

测试一下sizeof enum_val的值,看是多少,你会发现是4,其实这个原因很简单,enum 定义的变量只是一个UINT类型,而它生命的VALUE_ONE,VALUE_TWO, 只是enum变量的取值范围而已,所以enum不是像struct那样是个结构体,它表示的只是一个集合。

5, #define,因为在预编译的时候就会做替换,所以他不会导致不必要的内存分配。同时宏看起来像一个函数,但不会招致函数调用不必要的开销。

在定义宏的时候,必须记住为所以得实参加上小括号,但即使加上了小括号,也会遭遇麻烦:

#define CALL_WITH_MAX(a, b) f((a) > (b) ? (a) : (b))

看看下面的调用:

int a = 5, b = 10

CALL_WITH_MAX( a, b)

CALL_WITH_MAX( a, b 10) 把实参替换一下就可以看到,a的递增次数取决于它被拿来和谁比较。

6, int a, sizeof(a) 为什么不会出错? 因为sizeof 是一个关键字,关键字求值是在编译的时候,虽然并不存在a这个元素,但是这里并没有真正的去访问a, 而是仅仅根据数据元素的类型确定其值。 那么函数引用a就会出错,是因为函数求值是在运行的时候。

获取方式:

1.在你手机的右上角有【关注】选项,或点击我的头像,点击关注!(关注我)

2.关注后,手机客户端点击我的主页面,右上角有私信,请私信发我:编程

电脑已经设置好了关键词自动回复,自动领取就好了!这几天上万个消息,真的回复不过来,所以回复的时候请注意关键词!

其实做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这里请私信我“编程”不管你是小白还是大牛欢迎入住大家一起交流成长。小编会在里面不定期分享干货源码,包括我精心整理的一份c 零基础教程。欢迎各位感兴趣的的小伙伴。

学习思路:

学习资料

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/17 10:47:18

图片颜色丰富不丰富?用华为云码道开发 OpenCV 色彩丰富度分析工具

前面已经做过图片亮度、对比度、色偏、过曝、欠曝这些基础图像分析,这次继续做一个和颜色有关的小工具:图片色彩丰富度分析。平时看一张图片,我们经常会觉得:“这张图颜色很艳。”“这张图有点灰。”“这个画面颜色很淡。”这种感…

作者头像 李华
网站建设 2026/10/17 10:45:58

win10自带杀毒软件在哪里关?6种方法搞定Defender与防火墙

2026年了,依然有大量用户在安装行业工具、运行游戏补丁或老款驱动时被系统突然拦下,弹出一句“已阻止此应用运行”。这种时候,很多人第一反应就是去找:win10自带杀毒软件在哪里关?其实,win10自带的杀毒防护…

作者头像 李华
网站建设 2026/10/17 10:45:47

小餐饮记账软件采购录入营业额管理超方便

软件介绍 专为小餐饮店设计的记账软件。开小餐饮店的朋友都知道,每天的采购、营业额、进货渠道乱七八糟的,用纸笔记容易丢,用Excel记又太麻烦。这款小工具就是专门解决这个问题的。 首次使用先建档案 第一次用软件,不要急着录入…

作者头像 李华