c语言指针赋值(指针如何赋值)
大家好,今天来为大家解答c语言指针赋值这个问题的一些问题点,包括指针如何赋值也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
请问C语言指针赋值问题
首先,strcpy(oldTimeStr,timeStr);肯定是不行的,因为开始的时候,全局变量进行初始化成一个常量,char*oldTimeStr="";常量是不能被修改的,所以strcpy(oldTimeStr,timeStr);会出错
然后oldTimeStr= timeStr;也是不行的,因为timeStr是局部变量,具有一定的生存周期,在生存周期后果,这个指针指向的内容会无效,所以你直接把指针付给全局变量也不行。
正确的做法有很多,我给出2种:
1.在定义全局变量的时候,定义为char oldTimeStr[100]={0},这里100是个足够大的数,保证在任何时候都可以完全存放timeStr的值,这样可以使用strcpy(oldTimeStr,timeStr);了,这种情况适用于timeStr最大长度可知的情况;
2.一开始的时候,定义 char*oldTimeStr= NULL;
在给oldTimeStr赋新值的时候,使用malloc申请内存,然后复制字符串
if(oldTimeStr) free(oldTimeStr);
oldTimeStr=(char*)malloc(strlen(timeStr)+1);
strcpy(oldTimeStr,timeStr)
这种情况适用于timeStr最大长度未知的情况
c语言指针赋值问题
&是一元运算,取变量地址的操作,间接访问操作用运算符号*.&他返回操作数的内存地址,可以赋给类型合适的指针./
列如int
x
int
*px
px=&x
将X的内存地址赋给指针变量px,该赋值语句表示
指针px制向变量X,
*运算符与&运算符刚好相反,它也是一远运算符.用语返回指针指向的内存地址中存的值!
C语言指针赋值的问题。
1. n是整型变量,p是指向整型变量的指针,q是指向指针的指针。也就是 n中存放整型数,p中存放整形数的地址,q中存放指针的地址。*在运算中的作用是代表取指针所指向的变量。所以选D
2.n1=0;
p指向了n2,也就是通过*p能够取到n2的值;
同理通过*q也能够取到n1的值。
所以等价的是:选项A
关于c语言指针赋值和指针如何赋值的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。