指针变量可以赋值常量吗(指针变量是否能赋常量,指针变量不是只能存放地址吗)

本文目录
- 指针变量是否能赋常量,指针变量不是只能存放地址吗
- 在c程序中,指针能够赋__值或__值
- 指针变量能直接赋值吗
- 在给指针变量处理字符串时可以直接给指针赋值为字符串常量也可以通过gets函数
- “指针不能用除0外的常量赋值”这句话对不对
- C语言中可以给指针变量赋值常数吗
指针变量是否能赋常量,指针变量不是只能存放地址吗
C/C++的话不行,别的我不知道。C/C++中,除了0以外,其余的常数都不能直接赋给指针变量,一定要强制为地址才行:如int *p;p=8897300;是非法的(p=0;或p=NULL;是合法的),而p=(int *)1234567;则是合法的。
在c程序中,指针能够赋__值或__值
你这个问题好模糊,,如果是指针变量的话可以赋指针的值(相同类型的,类型要匹配,比如指针常量或者指针变量),而如果是指针常量的话就不能赋值了。
指针变量能直接赋值吗
看你的定义了,
char
*
const
cp
:
定义一个指向字符的指针常数,即const指针
const
char*
p
:
定义一个指向字符常数的指针
char
const*
p
:
等同于const
char*
p
在给指针变量处理字符串时可以直接给指针赋值为字符串常量也可以通过gets函数
在 C 语言中,可以使用 char * 指针变量来处理字符串。
你可以直接给指针赋值为字符串常量。例如:
char *str = "Hello World!";
这样做可以将字符串常量 "Hello World!" 赋值给指针变量 str。但是这样做并不能修改字符串常量的内容。
你也可以使用 gets 函数从标准输入(通常是键盘)读入字符串,并将其赋值给指针变量。例如:
char str;
gets(str);
这样做会将从键盘输入的字符串赋值给指针变量 str。但是 gets 函数已经被废弃,不建议使用。建议使用 fgets 函数来读入字符串。
“指针不能用除0外的常量赋值”这句话对不对
指针不能用除0外的常量赋值” 这句话在应用中是正确的说法
指针用来存储内存地址,初始化时,可以用0来赋值,用来表示一个无效的地址。正常使用时,内存地址,只能通过&操作符来获取,不能人工指定具体的内存地址值。
如:
int *p=0; //可以
int a ;
p=&a ; //可以
p=10 ; //从理论上讲,这语句没有问题,因为整数10可以存储到指针变量中。但,从应用来说,这是一条错误的语句,编程者不能指定具体的数值给指针变量,如果强行这样写,一旦引用该地址内容,有可能会给程序带来灾难。
C语言中可以给指针变量赋值常数吗
C语言中可以给指针变量赋值常数。
1、申请了空间(在常量区),存放了字符串
2、在字符串尾加上了’/0’
3、返回地址,这里就是返回的地址赋值给了p
字符串常量"hello"出现在一个表达式中时,"hello"表达式使用的值就是这些字符所存储的地址(在常量区),而不是这些字符本身。所以,可以把字符串赋值给指向字符的指针p,而不能把字符串赋值给一个字符数组。
chara=‘e’,是一个道理。
换成chara,然后a=“hello”就不行了“hello”赋值的值是一个地址,而a虽然也有地址,但是这与指针是不一样的,指针的值是地址,而数组的值虽然也是地址,但是却是一个常量,所以不能给常量赋值。
扩展资料
C语言中给指针变量赋值常数注意事项
在使用指针的时候,指针可以自增,而数组不能自增,编译器给数组分配了空间,数组a的地址就是一个常量了,让常量自增这肯定是不行的。 在指针自增的时候,编译器会自动识别类型,比如指针是指向int型的,想获取下一个的地址时,指针直接p++就行了。
特别需要注意的是,在void指针使用的时候,不能使用指针运算,应为void型编译器不能识别类型的长度(即指针所指对象的体积),p++这样就是不合法的,即不能进行数学运算,也不能使用*取值操作,想使用必须转换为其它的类型。

更多文章:
avantage怎么设置为中文(Avantage安装丢失GIT)
2026年10月15日 03:00
activex控件未注册怎么办(登陆视频监控网页时提示activex控件未注册,怎么解决)
2026年10月14日 20:30
excel连接sql数据库教程(excel怎么连接sql数据库)
2026年10月14日 19:40






