zoukankan      html  css  js  c++  java
  • C中双引号和单引号的区别

    在我们讨论之前先看一个函数: ``` #include #include #include int parse_cmd_num(int count,int *dest) { int j = 0; char *p = NULL; char *q = NULL; char sbuf[20] = ": 12,23,34"; p = sbuf; p++; while(count--) { p++; *(dest+j)=atoi(p); q = strstr(p,','); sprintf("parse_cmd_num p = %s",p); p = q; j++; } return 1; } int main() { int i = 0; int array[3]={0}; parse_cmd_num(3,array); for(i=0;i<3;i++){ printf("array %d:%d ",i,array[i]); } return 0; } ``` **这个函数的作用是取字符串中的数字。程序逻辑看起来没有什么问题,但是奇怪的是 `sprintf("parse_cmd_num p = %s",p);`这个没有执行。说明程序有错误的,但是错在哪里尼?**

    看下单,双引号的定义:
    单引号'' 引起的一个字符代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。
    双引号"" 引起的字符串代表的是一个指向无名数组起始字符的指针。

    当strstr即使要匹配字符也要用双引号表示,否则会当作整数处理。这样程序就会发生错误。C语言中数据的类型还是特别重要的。将程序中的q = strstr(p,',');改为q = strstr(p,",");就能正常运行了。

    不怕世界大,就怕格局小
  • 相关阅读:
    mac下卸载mysql
    mac安装MySQL笔记
    mac安装python3.7.0
    web自动化测试之8大元素定位方法
    postman的下载和使用
    说说性能测试
    jmeter动态修改线程组参数
    服务器性能监控
    性能测试分配堆内存
    nmon分析工具的使用
  • 原文地址:https://www.cnblogs.com/wangjian1226/p/11162842.html
Copyright © 2011-2022 走看看