字串/队列/指针的问题

iOS 码拜 7年前 (2015-05-04) 316次浏览 0个评论
 

小弟看书,在Programming in Objective C的296页
Constant Character Strings and Pointers这一个小节,看到这样一个问题很疑惑,求解

char *textPtr;
textPtr = “A character string.”;
以上可行
char text[80];
text = “This is not valid.”;
以上不可行
char text[80] = “This is okay.”;以上又可行

我能理解textPtr是指向这个C风格字串的首地址,但是不能理解为什么(text = “This is not valid.”;)是错的。难道是因为C风格字串默认constant,不能用来给非const赋值,只能用来初始化?

感激不尽

字串/队列/指针的问题
10分
text = “This is not valid.”;这是给数组的首地址赋值吗?
char text[80] = “This is okay.”;这个是初始化。

c99就是这么规定的。GCC编译器应该是通用的

字串/队列/指针的问题
10分
搜到一篇文章,感觉说的比较清楚。
http://cache.baidu.com/c?m=9d78d513d9d430dc4f99e2697b13c011124381132ba6d1020ba48448e2732d455016e9ac51250773a3d13b275fa0131aacb22173441e3df2de8d9f4aaaeace7871d57275671cf1104f8c04ee96047f9a73925ceba804b4faa168c8ea85cedf5651c04e07719df08a470314c16bf41631f4a6ee1253004e&p=c3769a41999615fd08e2977c064798&user=baidu&fm=sc&query=%CA%FD%D7%E9%C3%FB+%D6%B8%D5%EB&qid=8a87b6d50edd27ff&p1=5
字串/队列/指针的问题
5分
char text[80];
text = “This is not valid.”;
作为数组存储 必须要有存储的下标;
而char text[80]=”this is oK”这个其实是做了两个动作 就是定义一个数组变量并且初始化数组.
第一句话如果这样写 应该是对的
char text[80];
text[0] = “This is not valid.”;
这样就会是对的.
字串/队列/指针的问题
5分
回复的内容404了吗?
字串/队列/指针的问题
5分
貌似是有点问题

我也觉得有点纠结了。貌似在VC编辑器中是可行的。

字串/队列/指针的问题
5分
我终于弄明白了

char text[80];
text = “1234  qwe”;

其实这句话是有问题的。text这个时候只是代表一个 地址常量,而不是一个指针变量

如果要给text赋值的话,右边应该是一个装有 地址的变量或者   地址常量

楼上给的那个网站,很有用。

我也学习了

字串/队列/指针的问题
char text[80];
的text是常量。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明字串/队列/指针的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!