欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【指针】-2

程序员文章站 2022-03-26 12:36:30
...

多维数组与指针

【指针】-2
二维数组在内存中实际还是一维的。

指向多维数组的指针变量

【指针】-2
多维数组指针定义为:

int*p)[4]

【指针】-2

实战演练

通过输入指定行数和列数打印出二维数组对应任一行任一列元素的值。

int main()
{
    int a[3][4] = { 1,3,5,7,9,11,13,15,17,19,21,23 };
    int(*p)[4], i, j;

    p = a;

    printf("i = ");
    scanf("%d", &i);
    while (i > 3 || i < 0)
    {
        printf("i=");
        scanf("%d",&i);
    }
    printf("j = ");
    scanf("%d", &j);
    while (j > 3 || j < 0)
    {
        printf("j=");
        scanf("%d", &j);
    }
    printf("a[%d,%d]=%d\n", i, j, *(*(p + i) + j));
}

字符指针作函数参数

(1)用字符串数组做参数

int main()
{
    void copy_string(char from[], char to[]);

    char a[] = "I am a teacher.";
    char b[] = "I am a student";

    printf("string a=%s\nstring b=%s\n ", a, b);
    printf("copy string a to b string b:\n",a,b);

    copy_string(a, b);

    printf("\n string a = %s\nstring b =%s\n", a, b);

}
void copy_string(char from[], char to[])
{
    int i = 0;
    while (from[i] != '\0')
    {
        to[i] = from[i];
        i++;
    }
    to[i] = '\0';
}

(2)形参用字符指针变量

int main()
{
    void copy_string(char *from, char *to);

    char *a = "I am a teacher.";
    char b[] = "I am a student";

    printf("string a=%s\nstring b=%s\n ", a, b);
    printf("copy string a to b string b:\n");

    copy_string(a, b);

    printf("\n string a = %s\nstring b =%s\n", a, b);

}
void copy_string(char *from, char *to)
{
    for (; *from != '\0'; from++, to++)
    {
        *to = *from;
    }
    *to = '\0';
}
严重性 代码  说明  项目  文件  行   禁止显示状态
错误  C2440   “初始化”: 无法从“const char [16]”转换为“char *”  demo    c:\users\administrator\source\repos\demo\demo\demo.cpp  11  

字符指针变量和字符数组的讨论

【指针】-2

字符串放在一个常量内存,字符串指针指向字符串的第一个元素的地址


指向函数的指针

相关标签: 指针