zoukankan      html  css  js  c++  java
  • 数组与指针

    #include<stdio.h>
    int main(){
    	int a;
    	int *p=&a;
    	printf("输一个整数
    ") ;
    	scanf("%d",&a);
    	printf("a=%d",a);
    	printf("输一个整数
    ") ;
    	scanf("%d",p);
    	printf("a=%d",a);
    } 
    

    对字符串;

    #include<stdio.h>
    int main(){
    char str[123];
    printf("输入一个字符串");
    scanf("%s",str) ;
    printf("str=%s",str);	
    } 
    

    数组名的真实身份:

    #include<stdio.h>
    int main(){
    char str[123];
    printf("输入一个字符串");
    scanf("%s",str) ;
    //printf("str=%s",str);
    printf("%p
    ",str);
    printf("%p",&str[0]);
    } 
    
    #include<stdio.h>
    int main(){
    char a[]="hello,,world!";
    int b[5]={1,2,3,4,5};
    float c[5]={1.1,1.2,1.3,1.4,1.5};
    printf("a[0]=%p
     a[1]=%p
     a[2]=%p
    ",&a[0],&a[1],&a[2]);
    printf("%p",a);
    } 
    

    指向数组的指针

    指针法:

    #include<stdio.h>
    int main(){
    char a[]="hello,,world!";
    int b[5]={1,2,3,4,5};
    float c[5]={1.1,1.2,1.3,1.4,1.5};
    printf("a[0]=%p
     a[1]=%p
     a[2]=%p
    ",&a[0],&a[1],&a[2]);
    printf("%p",a);
    } 
    
    #include<stdio.h>
    #include<string.h>
    int main(){
    char *str="I love you";
    int i,length;
    length=strlen(str);
    for(i=0;i<length;i++){
        printf("%c",str[i]);
    }
    return 0;
    } 
    View Code

     指针与数组的区别:

    #include<stdio.h>
    #include<string.h>
    int main(){
    char str[]="I love you";
    int count=0;
    char *p=str;
    while(*p++!=''){
    	count++;
    }
    printf("字符串长度%d",count);
    return 0;
    } 
    

    数组名为一个地址,指针名为一个左值

    指针数组与数组指针

    int *p[5]; //指针数组
    int (*p)[5];//数组指针
    

    指针数组是一个数组,每个数组元素存放一个指针变量

    #include<stdio.h>
    #include<string.h>
    int main(){
    	int a=1;
    	int b=2;
    	int c=3;
    int *p[3]={&a,&b,&c};
    int i;
    for(i=0;i<3;i++){
    	printf("%d",*p[i]);
    }
    } 
    
    #include<stdio.h>
    #include<string.h>
    int main(){
        char *p[5]={
        "我是",
        "",
        "",
        "chui",
        "haha" 
        };
        int i;
        for(i=0;i<5;i++){
            printf("%s",p[i]);
        }
    return 0;
    } 
    View Code

     数组指针:

    数组指针是一个指针,它指向的是一个数组

    错误一:

    #include<stdio.h>
    #include<string.h>
    int main(){
    int (*p)[5]={1,2,3,4,5} ;
    int i;
    for(i=0;i<5;i++){
    	printf("%d",*(p+i));
    }
    return 0;
    }
    

    错误二:

    #include<stdio.h>
    #include<string.h>
    int main(){
    int array[]={1,2,3,4,5} ;
    int (*p)[5]=array;
    int i;
    for(i=0;i<5;i++){
    	printf("%d",*(p+i));
    }
    return 0;
    }
    

    正确一:指向第一个元素,而不是数组

    #include<stdio.h>
    #include<string.h>
    int main(){
    int tmp[5]={1,2,3,4,5};
    int *p=tmp;//指向第一个元素 
    int i;
    for(i=0;i<5;i++){
    printf("%d
    ",*(p+i))	;
    }
    return 0;
    }
    

    正确二:指向数组

    #include<stdio.h>
    #include<string.h>
    int main(){
    int tmp[5]={1,2,3,4,5};
    int (*p)[5]=&tmp;//指向第一个元素 
    int i;
    for(i=0;i<5;i++){
    printf("%d
    ",*(*p+i));
    } 
    return 0;
    }
    

      

  • 相关阅读:
    菜鸟小结
    计算几何题目整理(转)
    poj 3299 Humidex
    基于C的文件操作(转)
    poj 1328 Radar Installation
    poj 1321 棋盘问题(dfs)
    poj 3302 Subsequence
    C# 资产(Property) 与普通字段(field)变量的区别
    Jumping into Cloud, Be Sure You Know How to Get Out
    关于语言的想法。
  • 原文地址:https://www.cnblogs.com/helloworld2019/p/11104539.html
Copyright © 2011-2022 走看看