zoukankan      html  css  js  c++  java
  • 蓝桥杯老师说指针

     1 //数组和指针互换问题 
     2 //char *的一些特殊性 ,主要是'\0'要占一个字节 
     3 //指针类型本质就是整数,可以无损保存和恢复类型 
     4 //传递参数的时候会损失size信息 
     5 #include <stdio.h>
     6 
     7 void f(int x[])//数组做参数的话是被完全当做指针使用的 
     8 {//不论 x的参数是几,打印的结果都是4 
     9     printf("%d\n",sizeof(x));
    10 }
    11 
    12 int main(int argc, char *argv[])//和char **argv 完全一样 
    13 {
    14     int a[] = {1,2,4};
    15     int *b;
    16     
    17     //下面这三个一致 
    18     printf("%d\n",a);
    19     printf("%d\n",&a);
    20     printf("%d\n",&(a[0]));
    21     
    22     b = a;//那么此时b和a是等效的,像数组一样使用b,像指针一样使用a
    23     
    24     //C语言中数组的作用被大大弱化了,很多都是按照指针的操作进行的 
    25     *(a+1) = 100; 
    26     
    27     printf("%d\n",sizeof(b));//4
    28     printf("%d\n",sizeof(a));//12
    29     
    30     printf("-----------------------------------\n");
    31     
    32     char str[] = "abc";//指针可以访问到0123,到三并没有越界
    33     char *ch = "abc";//打印ch和&ch是不同的 
    34     
    35     str[0] = 'x';//没问题 ,栈空间 ,串在栈里 
    36     ch[0] = 'x'; //有问题,编译通过,运行失败 ,因为串分配在静态常量空间 
    37     printf("%d\n",sizeof(str));
    38     
    39     
    40      printf("-----------------------------------\n");
    41      
    42      int b[] = {1,2,3};
    43      char *p = "abc";
    44      int a = (int)p;//必须强转,否则CE 
    45      char *q = (char *)a;
    46      //先打印b的地址,记住它(整形ans保存),然后int p = (int *) ans,没问题的;
    47      //也就是说C指针提供了很大的灵活性 ,允许程序员对任意地址操作 
    48      
    49      printf("-----------------------------------\n");
    50      int c[] = {1,2,3};
    51      printf("%d\n",sizeof(c));
    52      f(c);
    53      
    54     //while(1);
    55     return 0;  
    56 }
    57 
    58  
  • 相关阅读:
    Flask 5 模板1
    Flask 4 拓展
    Python学习札记(二十四) 函数式编程5 返回函数
    Python学习札记(二十三) 函数式编程4 sorted
    Docker:Err http://archive.ubuntu.com trusty InRelease & E: Unable to locate package [name] 问题
    解决 docker: Error response from daemon: ... : net/http: TLS handshake timeout.
    Ubuntu 安装Docker
    Flask 3 程序的基本结构2
    Flask 2 程序的基本结构1
    Flask 1 Introductory Chapter
  • 原文地址:https://www.cnblogs.com/hxsyl/p/3052787.html
Copyright © 2011-2022 走看看