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

转载于:https://www.cnblogs.com/CoderTian/p/5898668.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值