【指针】-2
程序员文章站
2022-03-26 12:36:30
...
多维数组与指针
二维数组在内存中实际还是一维的。
指向多维数组的指针变量
多维数组指针定义为:
int (*p)[4]
实战演练
通过输入指定行数和列数打印出二维数组对应任一行任一列元素的值。
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
字符指针变量和字符数组的讨论
字符串放在一个常量内存,字符串指针指向字符串的第一个元素的地址
指向函数的指针
上一篇: ES6-let&const
下一篇: 指针参数传递实质及二级指针使用