zoukankan      html  css  js  c++  java
  • 符号(单引号+双引号+逻辑运算符)

     1 #include <stdio.h>
     2 int main()
     3 {
     4     char* p1 =  1 ;
     5     char* p2 = '1';
     6     char* p3 = "1";
     7     printf("%s, %s, %s", p1, p2, p3);
     8     printf('
    ');
     9     printf("
    ");
    10     return 0;
    11 }

    char* p1 =1 ;表示将p1这个指针空间赋值1,那么p1指向了地址为1的内存空间;同理char* p2='1';将‘1’对应的ASCLL码(49)赋值给p2指针空间,则p2指向了地址为49的内存空间。这两个地址空间的内存段,都是低地址段,是系统预留的空间,用来拷贝内核代码的使用的,所以上层的应用程序,不能占用这部分空间——段错误
    char* p3="1";p3是指针空间,分配四个字节大小的空间,用来存放地址值,p3指向的内存空间是char类型的,只分配一个字节空间。char* p3="1";此时p3空间存放的值是字符:‘1’和‘’。

    printf(' ');由printf函数的原型:printf的第一个参数是一个指针类型的形参,那么将一个字符赋值该变量,出现的问题如上述。

    c语言中的单引号和双引号:

    单引号:表示字符常量

    ‘a’表示字符常量;在内存中占一个字节;‘a’+1表示‘a’的ASCLL码+1,结果为‘b’。

    双引号:表示字符串常量

    “a”表示字符串常量;在内存中占两个字节;“a”+1表示指针运算,结果指向“a”的结束符——‘’。

    字符串表示的是字符串的首地址,所以:char abc ="a";实际上abc中存放的是“a”首地址的一个字节的内容(高地址位字节/低地址位字节)

    逻辑运算符:&&,||,!

    短路原则:&&见假为假;||见真为真

    exp1&&exp2

    exp1||exp2

    对于&&,如果&&前面的表达式为假,那么&&之后的表达式不再计算(不再执行);对于||,如若前面的表达式为真,那么其后的表达式不再计算

    !exp

    对于!,单目运算符,其后表达式为0值时,!exp整体为真;其后的表达式为非0值时,!exp整体为假。

    exp1?exp2:exp3

    对于?:,当?前表达式为真时,整个表达式返回exp2的值,否则,整体返回exp3的值。不能直接作为赋值号的左值

     *(a<b? &a,&b)=3; //作为左值得情况
    内在的趣味,表面的繁琐
  • 相关阅读:
    蓝桥题库基础练习1-10
    HTML5(八)Web Workers
    对自动化测试工具的实战运用
    对自动化测试工具的简要认识
    HTML5(七)Web 存储
    蓝桥杯javaB组入坑
    Google Play内购测试
    【python】python中的json、字典dict
    【python】python之tuple元组
    性能测试基础知识
  • 原文地址:https://www.cnblogs.com/data1213/p/4821686.html
Copyright © 2011-2022 走看看