指南针与数组,指针数组

前方的东西都比较基本功,前面的这么些才是当真关键之处。

演示代码:

#include <iostream>
#include <stdlib.h> 


int main(int argc, char *argv[]) {
    //argc 指的是参数个数
    // argv[0]指的是程序的名字
    // argv[1]值的是程序执行的第一个参数

    int array[10]={1023,2,3,4,5,6};
    int *p = &array[0];
    int *p1 = array;

    printf("%p,%pn",array,&array[0]);
    //十六位的地址 
    //两个地址的值,并且两个地址相同。 

    printf("*p = %dn",*p);
    //1 
    printf("*p1 = %dn",*p1);
    //1
    printf("sizeof(array) = %d,sizeof(p1) = %dn",sizeof(array),sizeof(p1));
    //40,8
    printf("%d,%dn",sizeof(int *),sizeof(char *));
    //8,8
    printf("array =%p,*array =%p,&array = %pn",array,*array,&array);
    //地址的值,跟上面的结果一样的,15个0后面1,(如果是32位的操作系统的话,应该是7个0后面一个1),地址的值,跟最上面一样 

    //这个结果是什么呢? 
    printf("%dn",*((char *)p1+1));
    //这个地方很奇怪,总是觉得有问题。 
    //但是好像就是 0啊。 
    return 0;
}

运营结果:

图片 1

以此地方有一点某些出入,正是为了把那一个 结果试出来。所以能看得出来,开头数组里面第二个数字给的是1.

来拜会为何最终后生可畏行的结果是3.前方的不知道为什么的同班能够看看那几个地址里面书写的源委:

图片 2

 

void function2(void){
    //上面的如果看懂了的话,下面的都比较简单了 
    char buf[10] = {"abcdef"};
    char *pc = buf;
    printf("%cn",*(pc+3));
    int i = 0x12345678;

    char *cpi = (char *) &i;
    printf("%x,%x,%x,%xn",*(cpi+0),*(cpi+1),*(cpi+2),*(cpi+3));

}

运维结果:

图片 3

以此表现出操作系统相关性,假设是日常的windows,大概linux都以这种先输出小端的,要是是服务器型的unix的话,就能够自不过然12,34,56,78的结果。

 

运用指针举办赋值:

代码:

/**
    利用指针进行赋值。 
*/
void function3(void){
    int array[10]={0};
    int *p = array;
    for(int i = 0;i<10;i++){
        scanf("%d",p++);
    } 
    for(int i= 0;i<10;i++){
        printf("%dn",array[i]);
    }    
}

运维结果:

图片 4

/**
    指针数组 与数组指针 
*/
void function4(void){
    char *s[10];//指针数组 
    char (*s1)[10];//数组指针
    //第一个表达的意思是,有一个数组,里面有10个元素,每个元素都是一个指向 字符数组 类型 的 指针变量。
    //所以可以有 
    char c1[2]; 
    char c2[3];
    char c3[4];
    s[1] = c1;
    s[2] = c2;
    s[3] = c3;
    //第二个是数组指针,是一个指向有10个字符大小的字符数组的指针变量。
    char cc[2][10];
    //[Error] cannot convert 'char [2][5]' to 'char (*)[10]' in assignment
    s1 = cc;
    s1 = &cc[1];
    //这些东西 明天好好在理解一下 
    int i;
    int * p;
    p = &i;
    //同理:
    char mychars[10];
    s1 = &mychars;
}

 

前边的东西都相比较幼功,前面包车型客车这些才是的确重要的地点。 示例代码:
#include iostream #include stdlib.h int main( int argc…

相关文章