c语言中指针变量p初始化只能是地址,但也有给字符串的。为什么?

作者&投稿:撒翠 (若有异议请与网页底部的电邮联系)
~ 字符串"type"在C语言中叫作字符串常量。
p="type";实际上就是让p指向这个字符串常量的首地址,
所以指针指向字符串的实质还是指向一个地址。

“type”就是字符数组的一种表示方法,所以p指向的仍是地址

因为static是在编译时进行初始化的,
而auto是在运行时初始化的,在编译时,auto变量还不存在呢,当然也就没有地址,初始化就不能成功了.

这就是约定数成的
指针即可之地址也可之字符串

给指针一个内存地址就能储存字符串
用了new命令

c语言指针问题解答?
答:一、P指向a存值的地址,如p指向地址的内存的值为0001,则*p=0001(为1),这时修改*p=0010,则a的值相应的被修改为2。二、我们只能通过*p修改a的值,p是一个地址指针,更改p后 p指向了另一块内存,a的值不会被更改。三、int *p[] p是一个数组,数组内每个元素都是int*类型,也就是指向整型...

C++中指针的用法有那些?怎么定义?怎么初始化?
答:的内容。在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。图中,设有字符变量 C,其内容为“K”(ASCII 码为十进制数75),C 占用了011A 号单元(地址用十六进数表示)。设有指针变量 P,内容为 011A,这种情况我们称为 P ...

C语言中int *p=NULL是什么意思
答:C语言中int *p=NULL意思是:C语言中p里面是随机值,在int *p=NULL,这个p是有值的,为NULL;int *p=NULL指向一个空指针,等于 int *p=0; NULL等于0;可以随时让这个p指向其他地址。定义指针,将它初始化为NULL,这样做编程更规范。

(1)定义一个整型指针变量p,使它指向一个5个元素的一维数组. (2)使 ...
答:源代码如下:include<stdio.h> include<stdlib.h> int main(){ int a[5];int *p=a; //定义一个整型指针变量p,使它指向一个5个元素的一维数组.int i;printf("Please input:");for(i=0;i<5;i++)scanf("%d",p+i); //使用指针移动的方式,输入5个整型数组元素.int *q=(int*...

c语言指针使用前必须初始化??
答:指针申明的时候最好初始化。。初始化以后的指针在一些操作下野会变成野指针,比如:free释放内存以后。。指向被释放的内存的指针也是野指针。。我理解的野指针就是不可控的,不确定指向的指针都是野指针。

指针就是地址吗,指针变量难道不是地址?
答:如果指针变量p保存了变量a的地址,那么称作p指向了a,*p 就是变量a。如果p是一个指针变量,*p 表示了以 p 的内容为地址的变量,就是p指向的变量。可以这样来理解指针:指针是一种特殊的语言机制,它存放的是其它变量的地址,并且可以通过解引用操作符*,来获取该地址的内容。这也造成了一种指向的...

C语言,指针变量不是只能指向变量,不能指向常量吗?
答:指针变量是指向数据地址的,一般不指向常量,不过是可以指向常量的,指向常量一般不用,数据地址是变的 常指向0表示空值!

C语言赋值语句char* p=" string";
答:C语言赋值语句 char*p="string" ;是定义指针变量,并进行指针变量初始化的标准格式,没有错误。该语句相当于以下两句:char *p ; //定义指针变量,未初始化 p="string" ; //p指向string所在的地址,即:p中存储的是"string"串的首地址。是指针变量取地址中的数据运算符:p == 's' ; //...

C语言,假定一个p变量,如果p是整型,为什么*p一定是整型?
答:char型为1个,double为8个,但指针它是固定4个字节的(不同平台不一样),他的4个字节存放的是变量的地址,int *p;即为整型指针,指针很灵活,它并不一定就只能指向整型,因为整型占4个字节,所以p能够指向任何一个变量的首地址,读取到其首地址和与其后面3个地址的值 ...

c语言指针p=& x;的答案是什么?
答:所以说选项D直接排除。然后C选项也可以排除,因为C选项定义的是变量,不是指针变量。A和D选项都是指针变量,但是A选项不能作为正确的语句,不能把一个常数赋值给指针变量,所以说A是不正确,根据排除法得出D是对的,因为它定义了一个指针变量p来存放x的地址,所以说选择答案D。