随笔分类 -  C点滴

1
摘要:c语言中没有类似substr截取子串的函数,可以用strncpy,strncat实现 #include<cstdio> #include<cstring> using namespace std; int main(){ char a[20]="helloworld"; char b[20]=""; 阅读全文
posted @ 2020-02-23 11:56 立体风 阅读(4242) 评论(0) 推荐(0) 编辑
摘要:指针变量有3个值,自己的地址,保存的地址和保存地址内的值 #include <cstdio> int main(){ int a=10; int *p=&a; printf("p的地址:%p\n",&p); printf("p保存的地址:%p\n",p); printf("p保存地址内的值:%d\n 阅读全文
posted @ 2020-02-23 10:37 立体风 阅读(373) 评论(0) 推荐(0) 编辑
摘要:字符指针 char *p,只可接收已知的字符串字面量 字符数组 char a[100],可接收已知或未知的字符串。 原理:字符指针只能存储一个字符类型的地址,而字符串字面量表达式的返回值是:首元素首地址,所以字符指针可以获得该首地址,并且可以通过指针读取该字符串,但不能修改,因为字符串字面量都保存在 阅读全文
posted @ 2020-02-23 08:22 立体风 阅读(652) 评论(0) 推荐(0) 编辑
摘要:1、https://en.cppreference.com/w/ 2、https://www.geeksforgeeks.org/ 3、https://www.tutorialspoint.com/c_standard_library c语言标准库教程 在windows下使用c++编译器(基于g++ 阅读全文
posted @ 2019-04-06 06:12 立体风 阅读(1628) 评论(0) 推荐(0) 编辑
摘要:c字符串功能练习: 获取一行字符串,然后,在这行字符串中搜索是否包含一个小字符串 阅读全文
posted @ 2019-04-05 07:14 立体风 阅读(2819) 评论(1) 推荐(1) 编辑
摘要:c语言标准库没有截取部分字符串的函数,为啥?因为用现有函数strncpy,很容易做到! 输出结果为 123 看到了吗,strcpy函数中的参数是字符串数组的名字,而数组名本质上是指针,那么,src+3 就可以实现将 src中从第4个字符开始复制n个字符给 dest 了 输出结果为 456 注意:比较 阅读全文
posted @ 2019-04-05 06:49 立体风 阅读(23014) 评论(0) 推荐(3) 编辑
摘要:对于任意w位的二进制,进行k位的移动时,真实的位移量为k mod w 32bit的例子 1 << 1 结果2 1 mod 32 => 11 << 32 结果1 32 mod 32 => 01 << 33 结果2 33 mod 32 => 1 但,如果是纯字面量计算,却得出0,看代码: 第一种情况,在 阅读全文
posted @ 2019-03-26 20:54 立体风 阅读(828) 评论(0) 推荐(0) 编辑
摘要:1、当一个char型指针指向一个字符串字面量(也就是常量字符串)时,该指针必须由const修饰,否则,系统会给出deprecated(不赞成)的警告。原因是:字符串字面量不可改变,当它被一个非const修饰的指针指向时,存在被指针改变的风险。 2、char型指针指向一个字符数组时,没有const限制 阅读全文
posted @ 2018-05-08 05:59 立体风 阅读(455) 评论(0) 推荐(0) 编辑
摘要:今天看书《C++高级语言程序设计》(徐惠民)的书中关于指针的指针作为函数的参数一节,对指针有了更深层次的感悟,记录。 要点1:解引用符*的作用,把它放在一个地址的左边,可以取得这个地址内存放的值。 要点2:指针就是存放地址的变量,可以简单的理解为:指针就是一个地址。 要点3: int a=10; i 阅读全文
posted @ 2018-05-01 15:02 立体风 阅读(1368) 评论(0) 推荐(0) 编辑
摘要:经常有这样的问题,要求打印如下格式: 进而要求,如果abcde有为0的值,取消打印,假设:a=1,b=0,c=12,d=0,e=5或者,a=0,b=2,c=0,d=10,e=0等等,要求打印: 思路:先找到第一个不为0的,打印出来,然后,将‘,'号放到后面的数的前面,类似",c"这样,完成打印,具体 阅读全文
posted @ 2018-04-08 08:46 立体风 阅读(588) 评论(0) 推荐(0) 编辑
摘要:结合律指的就是操作符优先级的结合方向的规律,共两种“左到右”,“右到左”,好像很简单的样子,但是,你真的全部了解了吗?你了解的是编译器真正的工作方法吗? 1、左到右的含义:就是左结合,右到左就是:右结合。 2、所谓结合:就是多个东西结合成一个整体,变为一个新的东西。 3、当一个操作符是左结合且为双目 阅读全文
posted @ 2018-03-19 10:52 立体风 阅读(287) 评论(0) 推荐(0) 编辑
摘要:不知道有人注意没有,virtual的英语含义是:实际的,事实上,实质上。但是在计算机英语内却表示:虚拟的意思。比如:virtual memery 虚拟内存,virtual reality 虚拟现实。 哇,为啥一个单词包含两种相反的含义?剑桥英语词典对virtual的解释是:almost a part 阅读全文
posted @ 2018-03-14 11:26 立体风 阅读(2711) 评论(0) 推荐(0) 编辑
摘要:最近重读c语法,有所感悟,记录。 有时候感悟,其实就是猜,假想,作者创建语言的想法,通俗的讲就是丹尼斯灵魂附体了,这个时候任何c语言难点对于你来说,就像吃饭喝水一样简单了,同时还能发现它优美动人之处。 typedef的作用就是给类型创建一个别名。但类型分2种,1种是基础类型,1种是自定义类型。 1、 阅读全文
posted @ 2018-03-07 18:45 立体风 阅读(183) 评论(0) 推荐(0) 编辑
摘要:1、man手册可以输出ascii码表 man ascii 2、man手册还可以输出运算符的优先级 man operator 阅读全文
posted @ 2018-02-20 21:54 立体风 阅读(397) 评论(0) 推荐(0) 编辑
摘要:C99中,设置了stdint.h来定义一组整型数据类型,形如:intN_t和uintN_t对不同的N值指定N位有符号和无符号整数,N的值一般为:8,16,32,64。这样,我们就可以无歧义的声明一个16位无符号变量:uint16_t a 如果要想用printf打印这样声明的变量,可移植的做法是,包含 阅读全文
posted @ 2018-02-13 07:40 立体风 阅读(514) 评论(0) 推荐(0) 编辑
摘要:带参数的宏替换因各种需求叠加,替换规则很怪异: 1、首先将实参替换形参,并展开宏 2、如果1步展开后,有#或者##,参数会被加上双引号,导致停止替换。 3、如果1步展开后,没有#或者##,且参数也是宏,那么继续替换,知道参数没有宏为止。 4、执行完1-3后,第一轮替换结束,再次扫描宏,如果外层还有宏 阅读全文
posted @ 2018-02-06 20:28 立体风 阅读(1624) 评论(0) 推荐(0) 编辑
摘要:这个问题很好回答,并且我把这个问题归结于基本概念题(就是入门书必须介绍的)。我想一般来说,做过内存管理的,对这个语言特性肯定不会陌生。摘几句The C Programming Language里面讲述这个问题的原话,以说明读书还是必要的:①联合就是一个结构,②它的所有成员相对于基地址的偏移量都为0, 阅读全文
posted @ 2018-01-25 20:58 立体风 阅读(2158) 评论(0) 推荐(0) 编辑
摘要:#include int main(int argc, char *argv[]) { unsigned int umax=~0; if(umax == -1) ... 阅读全文
posted @ 2018-01-25 19:40 立体风 阅读(281) 评论(0) 推荐(0) 编辑
摘要:目前,计算机存储系统有2种存储格式,大端和小端。数据在内存中存储时以字节为单位,一个int类型有4个字节,这就导致是高字节对应低地址(大端模式),高字节对应高地址(小端模式)。大端和小端模式本身没有对错,也没有优劣,理论上都可以,于是,怎么搞的都有。比如:用大端的C51单片机,用小端的ARM,INT 阅读全文
posted @ 2018-01-22 18:03 立体风 阅读(317) 评论(0) 推荐(0) 编辑
摘要:根据c标准,char类型到底是有符号整数类型还是无符号整数类型,这取决于c实现,也就是c编译器的作者的想法:( 那么,如何快速的编写一个检测程序,查看当前编译器如何对char进行定义? 我的机子输出: 关键语句: (char)-1>0?"un":"" 含义:将-1强制转换为char类型,如果是无符号 阅读全文
posted @ 2018-01-22 17:42 立体风 阅读(1072) 评论(0) 推荐(0) 编辑

1
点击右上角即可分享
微信分享提示