-3

我故意尝试通过指向常量数据的非常量指针来修改数据,显示不同的错误。我希望在编译器调用函数 function_try(const *sPtr) 时显示错误,但似乎它正在传递它并显示错误到下一步...请检查并指导我...谢谢大家

 void function_try(const *sPtr);

 int main(void)
 {
     int y = 29;

     function_try(&y);

     printf("%d\n",y)

     system("PAUSE");

     return 0;

     }


 void function_try(const *sPtr)
 {
      *sPtr = 100;

     }
4

1 回答 1

0

你可以运行这段代码,看看错误,你想看看

#include <stdio.h>
#include <stdlib.h>

void function_try(int *);

int main(void)
 {
     const int * y ;
     *y = 29;
     function_try(y);
     printf("%d\n",*y);
     return 0;

  }


 void function_try(int *sPtr)
 {
      *sPtr = 100;

 }

你会得到的错误是

main.c:9:6: error: assignment of read-only location ‘*y’

除了错误消息,您还会收到这些警告。

main.c:10:6: warning: passing argument 1 of ‘function_try’ discards ‘const’ qualifier from pointer target type [enabled by default]
main.c:4:6: note: expected ‘int *’ but argument is of type ‘const int *’
于 2013-03-06T06:53:39.880 回答