C语言阶段——需要注意的小细节

 

持续更新。。。。。。。

 

 

 

 

 

1.       int  a;

      定义全局变量                 如果不给初值    系统自动给a赋0

   但定义局部变量时             如果不给初值    就是一个随机值

 

 

2.scanf()函数 里  别放多余的东西   就放一个标准输入格式符就好

                    试一试:
                                scanf("%f\n", &temp1);
                                scanf("%lf\n", &temp2);
     
                     就知道了

 

 

 

3.逗号表达式作为一个整体,从左到右逐个计算;它的值为最后一个表达式的值

    逗号表达式的优先级在所有运算符中最低

 

 

 

 

 

4.赋值表达式  =    *=    -=    /=      运算顺序是从右往左运算

 

                    例如  int temp = 2;  if( x= 2 * temp = 3 ) ……   首先算2 * temp 得常数 4,   4 = 3  语法错误  x仍然没有赋值

优先级:!    算术符     关系符         &&        ||          赋值             逗号   

5.    假设a 的初值为2   运算完  a 的值为多少?     a 为 2 原因: 第一个if   没有加 {}   没有标明作用域

 

 

 

 

 

6.   Ubuntu启动出错  启动不了  可以试一下 删除下面两个文件夹

  

     至于为什么  我不知道。。   大家也可以评论告诉我。。。

 

 

 

 

 

7.  C语言中         0 == '\0' == NULL       !=          '0' == 48

 

 

 

 

 

8.   '\n' sizeof('\n') 的结果为4  ==> 为什么?    '\n'  字符型占用一个字节没错   

      但是'\n'的值是整型的ASCAII值 10  所以  sizeof(10)  结果为 4

 

 

      sizeof()           虽然长得像函数     但其实            是运算符

 

      typeof( '1' )    同理  他代表的类型并不是char     而是 int  原因就是函数

      处理的时候把    '1'  转换成整型数字 49  处理了

 

 

 

9.前置++      后置++

 

 

 

10.等价的表达式

 

 

 

 

11.数据在内存中的储存形式    整型 :   数据的补码存储            浮点型:    数据的补码存储

 

 

                                              字符型:  按字符的ASCII码存储      有疑问看第8点

                                              有符号:按数据的补码存储

 

                                              无符号型:按数据的源码存储

    有符号数据的表示                最小值在内存中的存储 符号位为 1 其他位为0
                                               最大值在内存中的存储 符号位为 0 其他位为1

 

12.      "\\\065a,\n"

          字符串长度为?       5

分析下:"\\\065a,\n"第一个字符\\,第一个\表示转义,
第二个\代表该字符第二个字符\065,八进制表达(有点凑巧啊)
第三个字符a
第四个字符,
第五个字符\n
所以答案是5

 

13.
%s打印字符串  后接地址     %c打印字符  接值         

            char ch[] = "123456";   //系统给常量ch指向的变量数组  分配内存空间存 字符串"123456" 
            char *str = "abcdef";    //系统给变量str 分配内存空间存 常量字符串"123456"的地址

            注意:变量的值可以变   但是常量的值不可改变
                  也就是说 变量数组 的值"123456"可以变                      

                           变量str的值(存放的地址)可以变成另外的地址

                  但是常量指针ch的指向不可更改    常量字符串"abcdef"不可更改

 

14.

 

15.

 

16.

 

17.

 

18.

 

19.

 

20.

 

展开阅读全文

没有更多推荐了,返回首页