指针变量的赋值

来源:百度知道 编辑:UC知道 时间:2024/05/28 07:22:04
我知道
char * p;
p="123";是对的。

那么int * a;
a=12;这样对吗?

p="123"是什么含义?是把123的地址给P吗?

p="123";
编译器会这样做:
1. 定义一个数组,类型为char,长度为4,并以0X31,0X32,0X33,0初始化该数组;
2.将指针p指向数组;
所以没有问题。
a=12;
首先编译器不会报错,因为语法是正确的,编译器会这样做:
1.定义一个指针变量,类型为int;
2.该指针指向地址12;
一般情况下指向一个固定地址的指针是不常用的,所以以你的问题来说,语法是正确的,但实际运行可能是不正确的。请仔细体会C语法指针的含义。

a=12是不对的。
a因为定义了指针类型了,所以只能保存整型的地址。
p="123";是把1的地址赋给P,因为"123"是一个字符串了。

要是还有问题就问我吧。我知道的就跟你说。

前者是将 “123”的首地址赋给p
后者是错误的