C语言学习笔记--单引号和双引号

(1)C 语言中单引号用来表示字符字面量(是个数值)被编译为对应的 ASCII 码

(2)C 语言中双引号用来表示字符串字面量(是个指针)被编译为对应的内存地址

例如:'a'表示字符字面量(97),在内存中占用 1 个字节,'a'+1 表示'a'的 ASCII 码加 1,即'b'。"a"表示字符串字面量(是个指针),在内存中占 2 个字了,"a"+1 表示指针运算,指向"a"的结束符"\0"。

#include <stdio.h>
int main()
{
    char* p1 = 1 ;//p1=0x0000001,内存低地址,不可访问
    char* p2 = '1';//p2=0x0000031,内存低地址,不可访问
    char* p3 = "1";//p3=0x008A5860,合法地址
    printf("*p1=%s\n", p1); //段错误,内存不可访问
    printf("*p2=%s\n", p2); //段错误,内存不可访问
    printf("*p3=%s\n", p3);//合法,*p3==1
    printf('\n');//段错误,'\n'表示 10,即内存 0x000000A 处的内存值
    printf("\n");//合法,打印换行return 0;
    
    return 0;
}

 

 

参考资料:
www.dt4sw.com
http://www.cnblogs.com/5iedu/category/804081.html

posted @ 2016-09-23 09:04  CrazyDiode  阅读(1375)  评论(0编辑  收藏  举报