关于指针

来源:10-5 从函数指针到仿函数模板

学以致用over

2022-04-11

int arr[] = {4, 3, 2, 1, 7};
  int *p = (int *) malloc(sizeof(int) * 10);
  int *p2 = new int(10);
  const char *p3 = "1,2,3";
  //  int *p4 = {1,2,3,4};
  //  const int *p5 = {1, 2, 3, 4};

老师,为什么char *p3 = “1,2,3”;可以,但是int *p4 = {1,2,3,4};就不行呢?不都是指向常量空间吗?

写回答

1回答

quickzhao

2022-04-11

C语言中数组不可以直接赋值给指针,只能将数组首地址赋值给指针。const char *p3 = "1,2,3" 其实就是将字符串首地址赋给p3;

int *p4 = {1,2,3,4};不行的,int *p4 = arr;则可以。

1
5
学以致用over
非常感谢!
2022-04-12
共5条回复

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程