指针变量可以指向数组但不允许指向数组元素(c语言里面为什么不能把指针赋给数组名)

本文目录
c语言里面为什么不能把指针赋给数组名
有两种情况。。
1、char
*p
=
"123";
char
s;
s
=
p;
这种情况是不合法的。。此时的数组名虽然也是指针,但应该看成指针常量,是不能修改的。。
2、void
fun(char
a){}
void
main()
{
char
*p
=
"123";
fun(p);
}
数组作为函数参数的时候,是可以把指针变量赋值给它的,这时数组名就可以看作一般的指针变量了。。
简单的说就是这样。。
关于用指针指向数组
两者都是指针,但指向的数据蠢御类型完全不同。
p1指向的是整数,这好理解。
p2指向的是长度为10的数组。
p1 = a是完全没有问题的。
p2 = a其实是做了自动类型转换的,通常会有警告(在某些编译器上甚至通不过)。
虽然p1 = a,p2 = a后,*p1是一个整数,*p2是一个数组的地址(在这里是a);
p1 ++ 将使p1指向a后面的一个整数。
而p2 ++ 将是p2指向a后面的一个数组。
像p2这样指向数组的指针通常用于2维数组。
比如b;
那么p2 = b后,*p, *(p+1), *(p+2)分别是b。
利用p++可以扮档好遍历这些厅铅长度为10的数组。

本文相关文章:
c语言一次性输出多个数据(c语言中,一次连续输入多组数据,并且最后连续输出多组结果,应该用哪种方法)
2026年6月1日 23:30
更多文章:
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00
怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)
2026年9月7日 06:30
vba编写excel插件(excel vba中能否动态创建控件)
2026年9月7日 04:40




