码迷,mamicode.com
首页 > 编程语言 > 详细

C语言学习----转义字符,常量

时间:2015-11-26 01:26:21      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:转义 常量

      关于C语言的学习,主要分为语言、算法、数据结构、系统调用、设计几个大方面。

     今天想和大家说的是  转义字符  和 常量 的一些简单知识

     转义字符,说白了就是"/"+其他字符。基本的转义在这里就不一一介绍了,每一本资料上 应该都有。我现在想说一些容易出错的。

 1、引号的输出

            printf("\"");或者printf("%c",‘"‘);

   单斜线的输出

            printf("\\");

 2、如说我输出一串的路径的话呢?像这样

             printf("C:\test\add\11-25\test.c");

        那么会输出什么呢?很明显这样是输不出想要的路径的,输出结果应该是

               C:    estdd    -25    est.c(中间都是隔着一个tab的位置)

      为了输出想要的结果,这里就要用到转义,原来所有的单斜线都改为双斜线,

                  printf("C:\\test\\add\\11-25\\test.c");

 3、针对问题二,多问一个问题,看如下程序:

      int a;

      a=strlen("C:\test\add\11-25\test.c");

      printf("%d",a);

   它的输出结果是多少呢?不妨自己猜一下,然后试一下。

   所有的字符转义后不管是什么,都只占一个位。


    关于常量,常见的常量有字符型、整型、浮点型、还有枚举(enum),前几种类型不用做解释,关于枚举还是想多啰嗦几句的。

    1、首先举一个简单枚举的例子(所有名称都是自己随意起的):

      enum OS

      {

         WIN,

         LINUS,

        UNIX

       };

    通常情况下,我们管大括号内的不叫成员,叫他可能取值,均为常量,可以给它赋值,在不赋值的情况下,默认从上到下0,1,2...,如果在上面的程序后面加上一句

     printf("%d\t%d\t%d\t",WIN,LINUS,UNIX);

    输出结果为 0    1    2

    若仅给中间某一个数赋值,则下一个数在该数的基础上加1,具体情况大家可以自己调试一遍。学习C的过程就是不断敲代码的过程。

   2、说到这里,另外再提一个关键字“const”

    const修饰的数据类型是指常类型,常类型的变量或对象的值是不能被更新的。比较一下下面两句:

            int n=10;    //n为变量

            const int n=10;    //变量转换为常量,后期是不可以对n值进行修改的。

    像这样:

          const int n=10;

          n=20;

    程序就会报错,但是真的不可以改掉n的值了吗?在C语言中,未必。

       指针,一个几乎万能的工具。看下面程序:

         const int n=10;

         int *p=(int *)&n;   //注意将n的地址强制转化为指针,否则也会报错

         *p=20;

         printf("%d",n);

     这样程序的输出结果就变成了20。

    3、数组

     首先看一个程序:

      int main()

     {

           int n=10;

           int  fun[n];

     }

     相信大家很容易看出程序是有问题的,在C语言中,数组的宽度必须是常量,那如果把第三行程序前面加上const,程序能不能正确编译呢?

     大家可以试试。

    注:数组空间是在编译前就开辟好了的。

C语言学习----转义字符,常量

标签:转义 常量

原文地址:http://whzhou.blog.51cto.com/10320514/1716923

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!