C语言小知识点总结

       这些是我在华清远见学习的时候记的一些小笔记,就是上课时听到哪个地方不是很懂的,就记在便签里,然后整理到这上面,也希望这些零散的知识能对别人起到一些补充作用。

        培训的还是有点用,老师讲C语言部分的时候比学校里的老师要深入点,补充学习的内容还是很多。

C语言:

1.指针相减,表示2个指针之间间隔的元素。

2.宏定义不改变优先级

上图中R代表4+4,宏定义展开就变成第三排红字,没有括号。

宏定义只做替换,不改变优先级,所以宏定义R时,需要加(),才能保证下面运用的时候4+4先运算。

3.多文件编程

 4.自增自减

14行中p先和++结合,但是printf执行最后才会移动p,所以14行输出才会是4,如果p先和*结合,那14行的输出就是4+1=5,15行输出就是4,与实际输出结果相悖。

注意!!!

针对上图中,如果有str++这种操作,是错误的,记住++是一个赋值操作,即str = str +1,但是因为str是数组首地址,数组首地址如果变了,你就找不到这个数组了,所以系统默认这个原装的指针不允许被改变,其它指向它的指针可以。

 5.printf()

上图printf里没有回车(\n),进入死循环,程序结束不了,hello就不会被拿出缓冲区,即显示不出来,除非程序结束,才会显示。

还有如果缓冲区装不下了,也会打印出来

改缓冲区模式,上面是行缓冲,下图为无缓冲模式,有什么打什么,不用换行符。

 6.scanf()

 前3个10后面依次输入的是回车,2个空格,1个tab,第四次20后面输入了好几个空格和tab,

说明了空格,tab,回车都能捕获一个结束 (也做分隔符),而只有回车,能让输入结束。

注意一:

    没有相应输入,直接回车,不会结束

注意二:

    scanf里不能有(\n),如果有,需要在输入一个其他值,再回车才会结束,不然只按回车结束不了

7.指针与数组之间存在的等价关系。

8.        交换变量        的3种方法

(1)

a ^= b;
b ^= a;
a ^= b;

 上述方法在整型交换,遇到相同的数不能用

(2)

a = a + b;
b = a - b;
a = a - b;

(3)

int t;    //引入第三个变量,不是必须int,a,b是啥类型,t就是啥类型
t = a;
a = b;
b = t;

下面2个是万能的。

9.寄存器没有地址

int *p;

register  int  a;

p不能指向a,因为寄存器里没有地址

10.%*c可以处理垃圾字符(输入之间的空格,回车,tab)

上图右边第一个输入为scanf("%c%c%c",a,,b,c);结果就有垃圾字符

原样输入也行,即scanf里有空格,必须手动把空格输上。

shell命令:

cd 后不能/开头,/放开头代表根目录,即上面表示在根目录下没有2110文件。

根目录里有lib目录文件,所以上述命令直接进入lib了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值