zoukankan      html  css  js  c++  java
  • c之指针退化和printf小陷阱

    今天参加了个笔试和面试,面试官给我指出了我试卷上的错误,我才发现,我的知识疏漏之处原来有不少,很是感谢。

    记得曾经有本书,专门写c的陷阱来着,里面有很多都牵扯到指针。嘿嘿,这小家伙古灵精怪,总是喜欢误导别人。这里说两个我犯的错误。

    1.指针退化。在c里,数组作为参数传给函数时,都会退化为指针,可以通过sizeof检测。

    2.printf运行顺序是自右向左。

    见下面代码:

     1 #include <iostream>
     2 #include <cstdio>
     3 using namespace std;
     4 
     5 char s[100];
     6 
     7 void f(char s[100]){//指针退化了
     8     cout<<sizeof(s)<<endl;
     9 }
    10 int ff(int m){
    11     static v=100;
    12     v+=m;
    13     return v;
    14 }
    15 
    16 int main(){
    17     f(s);
    18     cout<<sizeof(s)<<endl;
    19     printf("%d %d
    ",ff(300),ff(10));//由右向左跑
    20     return 0;
    21 }

    截图:

  • 相关阅读:
    观察者模式
    php中compact,extract,list函数的使用
    加密解密
    python 线程池proxypool
    python qq音乐下载
    python 网易云音乐
    python 知识点
    python 格式化 header
    python 爬取百度图片
    php 过滤掉多维数组空值
  • 原文地址:https://www.cnblogs.com/jiu0821/p/5251272.html
Copyright © 2011-2022 走看看