中易网

C语言,char *ptr="test";这条语句指针使用方法正确吗?

答案:5  悬赏:80  
解决时间 2021-01-15 00:54
  • 提问者网友:临风不自傲
  • 2021-01-14 13:21
C语言,char *ptr="test";这条语句指针使用方法正确吗?
最佳答案
  • 二级知识专家网友:白昼之月
  • 2021-01-14 13:38
这样定义是可以的。
为了便于你理解,给出分析如下:
ptr为一个指向char 类型的指针,它只要指向一个内存地址,里面存储的变量是char类型的,就是可以的,我们用解操作符* ,用*ptr访问该内存里面的内容,而test为一个char类型的常量,在系统中有一个内存地址存储test,这一个地址我们不知道在哪,但是在这个地址对应的内存上存有test。为了便于理解,我们假设有个chara[]="test";这样存储test的内存地址就可以用a表示(而不是像上面不能表示出来,但是它的地址实际是存在的,这个地址由编译器去找,我们不能给出显式的表达式),因为数组的首字母代表该数组的内存地址。
全部回答
  • 1楼网友:风格不统一
  • 2021-01-14 17:57
完全正确,可以使用,是一种比较高级的用法。
  • 2楼网友:街头电车
  • 2021-01-14 16:55
没有问题。注意ptr其实是一个常量指针,不能通过ptr修改所指向的字符串的值
  • 3楼网友:佘樂
  • 2021-01-14 15:26
语法上正确的,ptr这个指针指向常量区里的一个字符串,但使用上不能进行修改指针指向的内存里的内容。
推荐修改为
const char *ptr = "test";
  • 4楼网友:上分大魔王
  • 2021-01-14 13:53
看编译器实现,也不算特别正确。
"test"存放在常量区的话,类型是const char*
赋值给ptr的时候const丢了
对 ptr[0] 这类赋值的时候程序可能会出错,具体会不会出错要看编译器怎么做的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息